CVE-2026-64435 in Linux
要約
〜によって VulDB • 2026年07月25日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
audit: audit_queueにおけるskb_queue_len()読取り側のデータレースを修正
複数の読取り側が、キューロックの保持やREAD_ONCE()の使用なしに、skb_queue_len()を通じてaudit_queue.qlenにアクセスしています。一方、kauditdはspinlockで保護されたWRITE_ONCE()を使用して、skb_dequeue() → __skb_unlink()パス経由でこのフィールドへの書き込みを行っています。これがデータレースを構成します。
影響を受けるすべてのskb_queue_len(&audit_queue)呼び出し箇所: - kauditd_thread()のwait_event_freezable()条件 - audit_receive_msg() AUDIT_GETハンドラ (s.backlog割り当て) - audit_receive() バックログチェック - audit_log_start() バックログチェックおよびpr_warn()
KCSANは以下の競合するアクセスパターンを報告しています(例): ================================================================== BUG: KCSAN: data-race in audit_log_start / skb_dequeue
write (marked) to 0xffffffff8512ee20 of 4 bytes by task 661 on cpu 57: skb_dequeue+0x70/0xf0 kauditd_send_queue+0x71/0x220 kauditd_thread+0x1cb/0x430 kthread+0x1c2/0x210 ret_from_fork+0x162/0x1a0 ret_from_fork_asm+0x1a/0x30
read to 0xffffffff8512ee20 of 4 bytes by task 36586 on cpu 1: audit_log_start+0x2a0/0x6b0 audit_core_dumps+0x64/0xa0 do_coredump+0x14b/0x1260 get_signal+0xeb2/0xf70 arch_do_signal_or_restart+0x41/0x170 exit_to_user_mode_loop+0xa2/0x1c0 do_syscall_64+0x1a3/0x1c0 entry_SYSCALL_64_after_hwframe+0x76/0xe0
value changed: 0x00000001 -> 0x00000000 ==================================================================
内部でREAD_ONCE()を使用し、書き込み側で既に存在するWRITE_ONCE()による書き込みアクセスと適切にペアリングされるロックレスヘルパー関数skb_queue_len_lockless()への切り替えにより、レースを解消します。
[PM: 行長の調整]
If you want to get best quality of vulnerability data, you may have to visit VulDB.