🔍 CVE-2026-90183

0.0
CVSS Score
UNKNOWN
2026-09-17
2026-10-21 13:20
✅ 완료

🇰🇷 한글 설명

리눅스 커널의 blk-iolatency 구성 요소에서 정책 데이터 해제 시 지연 상태를 제대로 초기화하지 않는 취약점이 발견되었습니다. 이로 인해 특정 cgroup의 혼잡 상태가 영구적으로 유지되어 입출력 성능이 심각하게 저하될 수 있습니다.

💡 쉬운 설명

컴퓨터의 데이터 읽기/쓰기 속도를 조절하는 기능에서 오류가 발생하여, 한 번 느려진 시스템이 다시는 빨라지지 않는 문제가 있습니다. 이로 인해 파일 읽기나 메모리 관리 속도가 매우 느려질 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: blk-iolatency: clear delay state when freeing policy data io.latency can throttle a group which has no latency target of its own. When a sibling misses its target, check_scale_change() scales down its peers, and a peer that reaches queue depth one gets blkcg_use_delay() called on it on every further scale-down, even with min_lat_nsec == 0. iolatency_pd_offline() resets the target through iolatency_set_min_lat_nsec(), which clears the delay only on a nonzero to zero transition, so it never clears such a peer. Freeing the policy data then leaves blkg->use_delay set and blkcg->congestion_count elevated with nothing left that can drop it. blk_cgroup_congested() then returns true for every task in that cgroup and its descendants for as long as the cgroup lives: page_cache_sync_ra() cuts readahead to a single page, page_cache_async_ra() skips it altogether, and __folio_throttle_swaprate() takes swap_avail_lock and schedules a throttle on anonymous folio allocation. Clear the delay in iolatency_pd_free(). By then bio-held blkg references have drained, or the queue is frozen for policy deactivation, so check_scale_change() cannot re-arm it. The free callback can also see policy data which was never attached to a blkg, hence the pd->blkg check.

📍 영향받는 시스템

Linux kernel (blk-iolatency 관련 기능이 활성화된 버전)

⚔️ 공격 벡터

직접적인 외부 공격보다는 특정 I/O 부하 패턴을 유도하여 시스템 성능을 저하시키는 서비스 거부(DoS) 형태의 영향 가능성

🛡️ 대응 방법

리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 iolatency_pd_free() 함수가 지연 상태를 초기화하도록 수정해야 합니다.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인합니다.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel