CVE-2026-64563
rhashtable:在表重启时清除过期的 iter->p
- 已发布
- 2026年8月4日
- 已更新
- 2026年8月19日
- 分配 CNA
- Linux
- 观察到的证据
- 2026年8月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年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
在 Linux 内核中,已解决以下漏洞:rhashtable:在表重启时清除过期的 iter->p rhashtable_walk_start_check() 在恢复遍历时有两条重启路径。当 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 跨缓存复用使 skb 与 pipe_buffer 重叠,通过修改管道标志来读取 /etc/passwd。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。