【活用ガイド】

JVNDB-2026-014358

LinuxのLinux Kernelにおける境界外書き込みに関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。ksmbdのsmb_check_perm_dacl()関数でACEの最小サイズを適切に要求するように改善されました。smb_check_perm_dacl()内の両方のACEウォークループは、残りのバッファが小さすぎる場合のみ防御しており、構造体より小さいと宣言されたace-sizeに対しては防御していませんでした。最初のチェックは4バイトのACEヘッダーが範囲内であることのみを要求しており、offset 4のaccess_req(4バイト)が読み取り可能であることは要求していませんでした。攻撃者が所有するファイルに細工されたDACLを設定すると、ace-sizeが4かつaces_sizeが4と宣言し、両方のチェックを通過した後、上位ループでgranted |= le32_to_cpu(ace-access_req);を、下位ループでcompare_sids(&sid, &ace-sid);を呼び出しますが、これはoffset 4のaccess_req(最大4バイトのOOB)およびoffset 8のace-sid(最大CIFS_SID_BASE_SIZE + SID_MAX_SUB_AUTHORITIES * 4バイトのOOB)を読み取る結果となります。これらの両ループを厳密化し、ace_sizeがoffsetof(struct smb_ace, sid) + CIFS_SID_BASE_SIZE以上であることを要求するようにしました。これは最小の有効なオンワイヤACEレイアウト(4バイトヘッダー+4バイトaccess_req+8バイトのsidベースでサブ認証なし)です。また、compare_sids()はsub_auth[]エントリを参照する前にsid.num_subauthがSID_MAX_SUB_AUTHORITIESを超えるACEを却下するようにしました。parse_sec_desc()は既に同等のチェックを実施していました(行441から448)が、smb_check_perm_dacl()は時間経過とともに検証が弱くなっていました。到達条件はファイルのACL設定権限を持つ認証済みSMBクライアントです。そのファイルに対するCREATE操作時にカーネルが保存されたDACLをsmb_check_perm_dacl()経由で走査し、OOB読み取りを引き起こします。これは事前認証ではなく、OOB読み取りの影響は攻撃者に反映されませんが、KASANレポートやカーネル状態の破損が発生する可能性があります。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 8.3 (重要) [その他]
  • 攻撃元区分: ネットワーク
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 低
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): 高
  • 完全性への影響(I): 低
  • 可用性への影響(A): 高
影響を受けるシステム


Linux
  • Linux Kernel 5.15 以上 6.12.84 未満
  • Linux Kernel 6.13 以上 6.18.25 未満
  • Linux Kernel 6.19 以上 7.0.2 未満

想定される影響

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

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

CWEによる脆弱性タイプ一覧  CWEとは?

  1. 境界外書き込み(CWE-787) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-31712
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-31712
  2. 関連文書 : ksmbd: require minimum ACE size in smb_check_perm_dacl() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/90089584b2e25c4510b7b987387b4405f0673ece)
  3. 関連文書 : ksmbd: require minimum ACE size in smb_check_perm_dacl() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/95e5aa3c3261da8c95b27d7aecf8ee39b9f86a4c)
  4. 関連文書 : ksmbd: require minimum ACE size in smb_check_perm_dacl() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/d07b26f39246a82399661936dd0c853983cfade7)
  5. 関連文書 : ksmbd: require minimum ACE size in smb_check_perm_dacl() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/151b1799861fde38087c08f613abc2843ef597b0)
更新履歴

  • [2026年05月08日]
      掲載