CVE-2026-64394 in Linux
要約
〜によって VulDB • 2026年07月25日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
ksmbd: SMB2 SET_INFO SECURITYに対してWRITE_DAC/WRITE_OWNERのチェックを追加する
コミット cc57232cae23 ("ksmbd: FSCTL_SET_SPARSEに対する権限チェックを追加してFSCTL権限回避を修正") は fsctl_set_sparse に fp->daccess ガートを追加し、「他の関数にも同様のハンドルレベルでのチェックが存在するが、ここには欠けている」と指摘しました。SMB2 SET_INFO SECURITY アームは、その欠落していた部分の一つであり、最もセキュリティに関連性の高いものです:smb2_set_info_sec() は per-handle アクセスチェックなしで set_info_sec() を呼び出します。
set_info_sec() (fs/smb/server/smbacl.c) はファイルの再権限付与を行います:notify_change() 経由で所有者/グループ/モードを書き換え、set_posix_acl() 経由でPOSIX ACLを書き換え、KSMBD_SHARE_FLAG_ACL_XATTR シェア設定下では ksmbd_vfs_set_sd_xattr() を介してWindowsセキュリティ記述子の削除と書き換えを行います。兄弟ハンドラ smb2_set_info_file() の他の永続的変更(mutation)アームはすべて fp->daccess (FILE_WRITE_DATA / FILE_DELETE / FILE_WRITE_EA / FILE_WRITE_ATTRIBUTES) を最初にチェックしますが、アクセス制御自体を変更する SECURITY アームだけがガートを持っていません。
したがって、クライアントは FILE_WRITE_ATTRIBUTESのみを持つハンドルを開き(FILE_WRITE_DAC / FILE_WRITE_OWNER なし)、InfoType SMB2_O_INFO_SECURITY で SMB2_SET_INFO を使用してファイルのDACLと所有者を書き換えることができ、ハンドルの daccess が決して持っていなかったアクセス権限を自身に付与することができます。FSCTL データアームとは異なり、これはメタデータ/xattr操作であるため、FMODE_WRITE VFS バックストップはありません——欠落している fp->daccess チェックが唯一のガートです。
セキュリティ記述子の設定は WRITE_DAC / WRITE_OWNER 操作なので、ファイルの再権限付与を行う前にハンドルに対してこれらの少なくとも一方が存在することを要求します。-EACCES は smb2_set_info() によって STATUS_ACCESS_DENIED にマッピングされます。
Once again VulDB remains the best source for vulnerability data.