JVNDB-2026-022857 | |
LinuxのLinux KernelにおけるNULL ポインタデリファレンスに関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。btrfsでは、書き込み成功後のみダーティページのioツリーを解放するようになりました。[警告] umount時(別名、このシリーズの次のパッチ)にダーティエクステントバッファに関する追加警告が表示されることで、テストケースgeneric/388がアンマウント時に以下のようなダーティエクステントバッファに関する警告を引き起こす可能性があります。 BTRFS critical (device dm-2 state E): 緊急シャットダウン BTRFS error (device dm-2 state E): トランザクションの書き込みエラー: -30 BTRFS warning (device dm-2 state E): 中断されたトランザクションのコミットをスキップ BTRFS error (device dm-2 state EA): トランザクション9が中止されました (エラー -30) BTRFS: cleanup_transactionでのエラー (device dm-2 state EA): errno=-30 読み取り専用ファイルシステムです BTRFS info (device dm-2 state EA): 強制的に読み取り専用に切り替えました BTRFS info (device dm-2 state EA): 最後のアンマウントはファイルシステム4fbf2e15-f941-49a0-bc7c-716315d2777cで行われました ------------[ ここで切断 ]------------ WARNING: disk-io.c:3311 at invalidate_and_check_btree_folios+0xfd/0x1ca [btrfs], CPU#8: umount/914368 CPU: 8 UID: 0 PID: 914368 Comm: umount Tainted: G OE 7.1.0-rc1-custom+ #372 PREEMPT(full) 2de38db8d1deae71fde295430a0ff3ab98ccf596 ハードウェア名: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 不明 02/02/2022 RIP: 0010:invalidate_and_check_btree_folios+0xfd/0x1ca [btrfs] 呼び出しトレース: <TASK> close_ctree+0x52e/0x574 [btrfs] generic_shutdown_super+0x89/0x1a0 kill_anon_super+0x16/0x40 btrfs_kill_super+0x16/0x20 [btrfs] deactivate_locked_super+0x2d/0xb0 cleanup_mnt+0xdc/0x140 task_work_run+0x5a/0xa0 exit_to_user_mode_loop+0x123/0x4b0 do_syscall_64+0x243/0x7c0 entry_SYSCALL_64_after_hwframe+0x4b/0x53 </TASK> ---[ トレース終了 ]--- BTRFS warning (device dm-2 state EA): extent buffer 30539776 を解放できませんでした (owner 9 gen 9 refs 2 flags 0x7) BTRFS warning (device dm-2 state EA): extent buffer 30621696 を解放できませんでした (owner 257 gen 9 refs 2 flags 0x7) BTRFS warning (device dm-2 state EA): extent buffer 30638080 を解放できませんでした (owner 258 gen 9 refs 2 flags 0x7) BTRFS warning (device dm-2 state EA): extent buffer 30654464 を解放できませんでした (owner 7 gen 9 refs 2 flags 0x7) BTRFS warning (device dm-2 state EA): extent buffer 30703616 を解放できませんでした (owner 2 gen 9 refs 2 flags 0x7) BTRFS warning (device dm-2 state EA): extent buffer 30720000 を解放できませんでした (owner 10 gen 9 refs 2 flags 0x7) BTRFS warning (device dm-2 state EA): extent buffer 30736384 を解放できませんでした (owner 4 gen 9 refs 2 flags 0x7) BTRFS warning (device dm-2 state EA): extent buffer 30752768 を解放できませんでした (owner 11 gen 9 refs 2 flags 0x7)簡略化したバージョンを使用しており、警告がより確実にトリガーされるようになっています。 _fsstress_pid="" workload() { dmesg -C mkfs.btrfs -f -K $dev > /dev/null echo 1 > /sys/kernel/debug/clear_warn_once mount $dev $mnt $fsstress -w -n 1024 -p 4 -d $mnt & _fsstress_pid=$! sleep 0 $godown $mnt pkill --echo -PIPE fsstress > /dev/null wait $_fsstress_pid unset _fsstress_pid umount $mnt if dmesg | grep -q "WARNING"; then fail fi } for (( i = 0; i < $runtime; i++ )); do echo "=== $i/$runtime ===" workload done[原因]btrfs_write_and_wait_transaction()の内部では、まずすべてのダーティeb(extent buffer)の書き込み完了まで待機します。その後、btrfs_extent_io_tree_release()を呼び出し、dirty_pages ioツリーからすべてのextent状態を解放します。しかし、btrfs_write_marked_extent()でエラーが発生した場合でも、dirty_pages ioツリーをクリアするためにbtrfs_extent_io_tree_release()を呼び出しており、まだ送信していないダーティレコードを含んでいる可能性があります。さらにその後のトランザクションのクリーンアップ処理は、このdirty_pages ioツリーを利用して適切にダーティebをクリーンアップしますが、既にツリーが空であるためクリーンアップされず、結果として後のinvalidate_btree_folios()内で警告が発生します。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 7.5 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/06/26 |
| 登録日 | 2026/07/09 |
| 最終更新日 | 2026/07/09 |



