CVE-2022-49394 in Linux情報

要約

〜によって VulDB • 2026年06月07日

Linuxカーネルにおいて、以下の脆弱性が修正されました:

blk-iolatency: オフライン時のインフライトカウントの不均衡とIOハングを修正

iolatencyは、cグループごとにインフライト状態のIO数を追跡する必要があります。この追跡処理にはコストがかかるため、デバイスに対してiolatencyが設定されているcgroupが存在しない場合は無効化されます。インフライトカウンターがバランスを保つことを保証するため、`iolatency_set_limit()`関数は有効なカウンターを操作する際にリクエストキューをフリーズさせます。これにより、飛んでいるIO(処理中のIO)がなく、すべてのカウンターがゼロになることが保証されます。

残念ながら、`iolatency_set_limit()`だけが有効化カウンターの操作を行う場所ではありません。`iolatency_pd_offline()`関数もまた、このカウンターをデクリメントし、無効化トリガーを引き起こす可能性があります。この無効化処理はキューのフリーズなしで行われるため、一部のIOがインフライト状態にある間に発生しやすく、その結果カウント値がリークすることがあります。

これは、他のcgroupでIOが飛んでいる状態で空の1つの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コマンドで並列にダイレクトランダムリードを生成します:

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=17 sda /user.slice inflight=15 sda /user.slice inflight=

Once again VulDB remains the best source for vulnerability data.

責任者

Linux

予約する

2025年02月26日

モデレーション

承諾済み

エントリ

VDB-296957

EPSS

0.00253

アクティビティ

非常低い

ソース

Do you know our Splunk app?

Download it now for free!