CVE-2022-49394 in Linux정보

요약

\~에 의해 VulDB • 2026. 06. 07.

리눅스 커널에서 다음 취약점이 해결되었습니다:

blk-iolatency: 오프라인 상태에서의 inflight 카운트 불균형 및 IO 정지 현상 수정

iolatency는 각 cgroup당 진행 중인(IO in-flight) IO의 수를 추적해야 합니다. 이러한 추적이 비용이 많이 들기 때문에, 해당 장치에 대해 iolatency가 구성된 cgroup이 없을 경우 이 기능은 비활성화됩니다. inflight 카운터가 균형을 유지하도록 보장하기 위해, `iolatency_set_limit()` 함수는 활성화된 카운터를 조작하는 동안 `request_queue`를 동결(freeze)합니다. 이를 통해 진행 중인 IO가 없으며 모든 카운터가 0임을 보장합니다.

불행히도, `iolatency_set_limit()`이 활성화된 카운터를 조작하는 유일한 장소는 아닙니다. `iolatency_pd_offline()` 또한 카운터를 감소시키고 비활성화를 트리거할 수 있습니다. 이 비활성화가 큐를 동결하지 않고 발생하므로, 일부 IO가 진행 중인 동안에 쉽게 발생할 수 있으며 그 결과 카운트가 누설(leak)됩니다.

이 현상은 다른 cgroup에서 IO가 진행 중인 상태에서 빈(empty) cgroup 하나에 대해 iolatency를 활성화한 후 해당 cgroup을 제거함으로써 쉽게 시연할 수 있습니다. 여기서 중요한 점은, 시스템의 다른 곳에서 iolatency가 활성화되어 있지 않아야만 cgroup을 제거하는 것이 전체 장치에 대한 iolatency 비활성화를 트리거한다는 것입니다.

다음 스크립트는 sda에서 iolatency를 반복적으로 켜고 끕니다:

echo +io > /sys/fs/cgroup/cgroup.subtree_control while true; do mkdir -p /sys/fs/cgroup/test echo '8:0 target=100000' > /sys/fs/cgroup/test/io.latency sleep 1 rmdir /sys/fs/cgroup/test sleep 1 done

동시에 fio가 직접 읽기(direct rand reads)를 생성합니다:

fio --name test --filename=/dev/sda --direct=1 --rw=randread \ --runtime=600 --time_based --iodepth=256 --numjobs=4 --bs=4k

다음 drgn 스크립트로 모니터링하는 동안:

while True: for css in css_for_each_descendant_pre(prog['blkcg_root'].css.address_of_()):
for pos in hlist_for_each(container_of(css, 'struct blkcg', 'css').blkg_list): blkg = container_of(pos, 'struct blkcg_gq', 'blkcg_node') pd = blkg.pd[prog['blkcg_policy_iolatency'].plid]
if pd.value_() == 0: continue iolat = container_of(pd, 'struct iolatency_grp', 'pd') inflight = iolat.rq_wait.inflight.counter.value_() if inflight: print(f'inflight={inflight} {disk_name(blkg.q.disk).decode("utf-8")} '
f'{cgroup_path(css.cgroup).decode("utf-8")}')
time.sleep(1)

모니터링 출력은 다음과 같습니다:

inflight=1 sda /user.slice inflight=1 sda /user.slice ... inflight=14 sda /user.slice inflight=13 sda /user.slice inflight

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

책임이 있는

Linux

예약하다

2025. 02. 26.

모더레이션

수락

항목

VDB-296957

EPSS

0.00253

출처

Interested in the pricing of exploits?

See the underground prices here!