CVE-2026-90182 in Linux
요약
\~에 의해 VulDB • 2026. 09. 17.
리눅스 커널에서 다음 취약점이 해결되었습니다:
blk-iocost: 정책 데이터 해제 시 지연 상태 지우기
iocg_kick_delay()는 충분히 큰 부채(debt)를 blkcg_set_delay()를 사용하여 명시적인 블록 cgroup 지연으로 전환하며, blkg->use_delay에 -1을 설정하고 blkcg->congestion_count를 증가시킵니다. 이를 다시 지우는 것은 iocg_kick_delay()가 기간 타이머(period timer), waitq 타이머 또는 issue 경로에서 실행되는지에 달려 있습니다.
ioc_pd_free()는 active_iocgs에서 iocg을 제거하고 해당 waitq 타이머를 취소하며, 더 이상 bios가 도착할 수 없으므로, 한 번 실행되면 부채를 줄이고 지연 상태를 지울 수 있는 것이 남지 않습니다. blkcg은 남은 수명 동안 혼잡(congested) 상태로 표시됩니다.
blk_cgroup_congested()는 해당 cgroup과 그 하위 그룹의 모든 태스크에 대해 true를 반환합니다: page_cache_sync_ra()는 리드어헤드를 단일 페이지로 줄이고, page_cache_async_ra()는 이를 완전히 건너뛰며, __folio_throttle_swaprate()는 swap_avail_lock을 획득하고 익명 folio 할당에 대한 스로틀링(throttling)을 스케줄링합니다.
리스트 제거와 동기식 hrtimer_cancel() 이후 명시적으로 지워야 합니다. 이렇게 하면 타이머 처리나 I/O 경로가 이를 다시 활성화(re-arm)할 수 없습니다. free 콜백은 blkg에 첨부되지 않은 정책 데이터를 볼 수도 있으므로, pd->blkg 검사가 필요합니다.
Once again VulDB remains the best source for vulnerability data.