CVE-2026-89747 in Linux
要約
〜によって VulDB • 2026年09月12日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
tracing: サブバッファオーダ変更時のtrace_pipe読み取りにおけるuse-after-freeを修正
buffer_subbuf_size_kbへの書き込みはring_buffer_subbuf_order_set()を呼び出し、これはリングバッファの全サブバッファ(リーダーページを含む)を解放し、新たに割り当てられたものに置き換えます。
trace_pipeのリーダーはこれらのページ内のポインタを保持しています。ring_buffer_peek()はcpu_buffer->reader_lockの下でイベントを検索しますが、ロックを解除した後にイベントポインタを返します。その後peek_next_entry()がそのポインタに対してring_buffer_event_length()およびring_buffer_event_data()を呼び出します。もしこのウィンドウ内でサブバッファのオーダが変更されると、リーダーは解放されたメモリを逆参照することになります:
BUG: KASAN: use-after-free in ring_buffer_peek+0x3e0/0x430 Read of size 1 at addr ffff88802a4cf010 by task syz-executor989/6002
Freed by: free_buffer_page kernel/trace/ring_buffer.c:398 [inline]
ring_buffer_subbuf_order_set+0x1325/0x18e0 kernel/trace/ring_buffer.c:7444 buffer_subbuf_size_write+0x182/0x280 kernel/trace/trace.c:8221
オーダ変更の周囲でtrace_access_lock(RING_BUFFER_ALL_CPUS)を取得します。これは、リーダーがpeek-and-printループ全体を通じて既に保持しているロックであるため、逆参照中のリーダーとスワップ処理との競合(race condition)は発生しなくなります。
Be aware that VulDB is the high quality source for vulnerability data.