LinuxのLinux KernelにおけるNULL ポインタデリファレンスに関する脆弱性
タイトル LinuxのLinux KernelにおけるNULL ポインタデリファレンスに関する脆弱性
概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。xfsにおける2つのbtreeを再検証する際に削除されたカーソルをチェックする問題です。空き領域およびinodeのbtree修復関数は両方のbtreeを同時に再構築し、その後、破損が解消されたことを確認するために両方のbtreeを評価する必要があります。しかし、Jiaming Zhangはsyzbotを実行し、2回目のxchk_allocbt呼び出しでクラッシュを引き起こしました。彼の根本原因分析は以下の通りです(若干の修正を含みます)。xrep_revalidate_allocbt()ではxchk_allocbt()が2回呼ばれます(最初はBNOBT、次にCNTBT)。この問題の原因は最初の呼び出しが2回目の呼び出しで必要なカーソルを無効化したことにあります。まず、以下の呼び出しチェーンでxrep_revalidate_allocbt()に入ります。xfs_file_ioctl() - xfs_ioc_scrubv_metadata() - xfs_scrub_metadata() - sc-ops-repair_eval(sc) - xrep_revalidate_allocbt()。この関数内でxchk_allocbt()が2回呼ばれます。最初の呼び出しでsm-sm_typeはXFS_SCRUB_TYPE_BNOPTです。呼び出しチェーンはxchk_allocbt() - xchk_btree() - bs-scrub_rec(bs, recp) - xchk_allocbt_rec() - xchk_allocbt_xref() - xchk_allocbt_xref_other()です。sm_typeがXFS_SCRUB_TYPE_BNOBTなのでpurは&sc-sa.cnt_curに設定されます。カーネルはxfs_alloc_get_rec()を呼び、EFSCORRUPTEDを返しました。呼び出しチェーンはxfs_alloc_get_rec() - xfs_btree_get_rec() - xfs_btree_check_block() - (XFS_IS_CORRUPT || XFS_TEST_ERROR)です。前者は偽、後者は真でEFSCORRUPTEDを返しました。これはioctl$XFS_IOC_ERROR_INJECTIONによるものと推察されます。xchk_allocbt_xref_other()に戻るとxfs_alloc_get_rec()からEFSCORRUPTEDを受け取りカーネルはxchk_should_check_xref()を呼びます。この関数内で*curpp(sc-sa.cnt_curを指します)が無効化されます。xrep_revalidate_allocbt()に戻るとsc-sa.cnt_curが無効化されたため、xchk_allocbt()(2回目の呼び出し) - xchk_btree()にてヌルポインタデリファレンスが発生しました。まとめると、bnobt再検証はクロスリファレンス試行で失敗し、そのためcntbtのカーソルを削除し、その後cntbtを再検証しようとした際にクラッシュしました。したがって、その再検証前にヌルのcntbtカーソルをチェックし、修復は未完了としてマークします。また最初のbtreeが再構築されているが既に破損している場合は、2つ目のツリーを完全に無視して構いません。同様の修正をxrep_revalidate_iallocbtにも適用します。これは同じ問題を持っているためです。

想定される影響 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
対策

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。

公表日 2026年3月18日0:00
登録日 2026年5月25日10:24
最終更新日 2026年5月25日10:24
CVSS3.0 : 警告
スコア 5.5
ベクター CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
影響を受けるシステム
Linux
Linux Kernel 6.13 以上 6.18.16 未満
Linux Kernel 6.19 以上 6.19.6 未満
Linux Kernel 6.8 以上 6.12.75 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
変更履歴
No 変更内容 変更日
1 [2026年05月25日]
  掲載
2026年5月25日10:24