JVNDB-2026-024721 | |
LinuxのLinux Kernelにおけるリソースのロックに関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。dm cacheポリシーsmqに関して、キャッシュブロック無効化時のロック不足が修正されました。パススルーモードでは、policyのinvalidate_mapping操作が複数のワーカーから同時に呼び出されるため、ロックで保護する必要があります。そうしなければ、割り当てられたブロックカウンターに関してデータ競合が発生したり、同時書き込み時に内部データ構造でuse-after-freeが発生する可能性があります。smq_invalidate_mapping()内に既にあるFIXMEは、パススルーモードでのマイグレーションタスクが存在しないため影響はありませんが、ターゲットのリロードなしで高速なデバイス縮小をサポートする場合には注意が必要です。再現手順: 1. 1024エントリから成るキャッシュデバイスを作成します。 dmsetup create cmeta --table "0 8192 linear /dev/sdc 0" dmsetup create cdata --table "0 131072 linear /dev/sdc 8192" dmsetup create corig --table "0 262144 linear /dev/sdc 262144" dd if=/dev/zero of=/dev/mapper/cmeta bs=4k count=1 oflag=direct dmsetup create cache --table "0 262144 cache /dev/mapper/cmeta /dev/mapper/cdata /dev/mapper/corig 128 2 metadata2 writethrough smq 0" 2. キャッシュを埋め、キャッシュされたブロック数を記録します。 fio --name=populate --filename=/dev/mapper/cache --rw=randwrite --bs=4k --size=64m --direct=1 nr_cached=$(dmsetup status cache | awk '{split($7, a, "/"); print a[1]}') 3. パススルーモードでキャッシュをリロードします。 dmsetup suspend cache dmsetup reload cache --table "0 262144 cache /dev/mapper/cmeta /dev/mapper/cdata /dev/mapper/corig 128 2 metadata2 passthrough smq 0" dmsetup resume cache 4. パススルーキャッシュへ書き込みます。複数のジョブでI/Oサイズをキャッシュブロックサイズに設定し、それぞれのワーカーからキャッシュブロックを同時に無効化します。 fio --filename=/dev/mapper/cache --name=test --rw=randwrite --bs=64k --direct=1 --numjobs=2 --randrepeat=0 --size=64m 5. demotedの数とキャッシュブロック数が一致するか確認します。データ競合により異なる場合があります。 nr_demoted=$(dmsetup status cache | awk '{print $12}') echo "$nr_cached, $nr_demoted"。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 7.8 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/06/24 |
| 登録日 | 2026/07/23 |
| 最終更新日 | 2026/07/23 |



