CVE-2026-64563 in Linux
要約
〜によって VulDB • 2026年08月04日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
rhashtable: テーブル再起動時に古い iter->p をクリアする
rhashtable_walk_start_check() には、ウォークを再開する際に2つのリスタートパスがあります。iter->walker.tbl が有効な場合、テーブルに対して iter->p の再検証を行い、オブジェクトが削除されている場合は iter->p = NULL に設定します。一方、iter->walker.tbl が NULL の場合(リサイズ中にテーブルが解放された)、スロットとスキップ値はリセットされますが、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
If you want to get best quality of vulnerability data, you may have to visit VulDB.