| Title | LinuxのLinux KernelにおけるNULL ポインタデリファレンスに関する脆弱性 |
|---|---|
| Summary | 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にも適用します。これは同じ問題を持っているためです。 |
| Possible impacts | 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| Solution | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| Publication Date | March 18, 2026, midnight |
| Registration Date | May 25, 2026, 10:24 a.m. |
| Last Update | May 25, 2026, 10:24 a.m. |
| CVSS3.0 : 警告 | |
| Score | 5.5 |
|---|---|
| Vector | 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 未満 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年05月25日] 掲載 |
May 25, 2026, 10:24 a.m. |