CVE-2026-64563
rhashtable: テーブル再起動時に古いiter->pをクリアする
- 公開済み
- 2026/08/04
- 更新済み
- 2026/08/19
- CNA の割り当て
- Linux
- 観察された証拠
- 2026/08/13
プライマリ CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H低 · 今後 30 日間
- パーセンタイル
- 1.9%
- モデルの日付
- 2026/09/21
EPSS は統計的な推定値であり、確実性や影響の尺度ではありません。 CVSS、KEV ステータス、暴露、環境と組み合わせます。
概要
Linux カーネルにおいて、以下の脆弱性が解決されました: rhashtable: テーブル再起動時に古い iter->p をクリアする rhashtable_walk_start_check() には、ウォークを再開する際に2つの再起動パスがあります。iter->walker.tbl が有効な場合、テーブルに対して iter->p を再検証し、オブジェクトが存在しなければ iter->p = NULL を設定します。iter->walker.tbl が NULL(リサイズ中にテーブルが解放された)の場合、slot と skip をリセットしますが、iter->p をクリアするのを忘れます。rhashtable_walk_next() はその後、古い iter->p を逆参照し、解放済みメモリを読み取ります。これは use-after-free です。 walk_stop/walk_start 境界をまたいで複数フラグメントの rhashtable ウォークを行う呼び出し元はすべて影響を受けます。具体的なケースとしては、netlink_diag(net/netlink/diag.c の __netlink_diag_dump)と TIPC(net/tipc/socket.c の tipc_nl_sk_walk)が含まれます。 クラッシュスタック(netlink_diag): BUG: KASAN: slab-use-after-free in rhashtable_walk_next+0x365/0x3c0 Read of size 8 at addr ffff88801a9d2438 (freed kmalloc-2k, offset 1080) Call Trace: rhashtable_walk_next+0x365/0x3c0 (lib/rhashtable.c:1016) __netlink_diag_dump+0x160/0x760 (net/netlink/diag.c:122) netlink_diag_dump+0xc2/0x240 netlink_dump+0x5bc/0x1270 netlink_recvmsg+0x7a3/0x980 sock_recvmsg+0x1bc/0x200 __sys_recvfrom+0x1d4/0x2c0
ソース
1検証されていないLinuxカーネル権限昇格PoC。msg_msgsegのcross-cache reuseを利用してskbとpipe_bufferをオーバーラップさせ、pipeフラグを変更して/etc/passwdを読み取ります。
責任ある使用
脆弱性情報は、自分が所有しているシステム、またはテストを許可されているシステムでのみ使用してください。 Kitploit は公開研究メタデータにリンクしており、エクスプロイト コードや悪意のあるペイロードは保存しません。