CVE-2025-39913
tcp_bpf:当tcp_bpf_send_verdict()无法分配psock->cork时,调用sk_msg_free()。
- 已发布
- 2025年10月1日
- 已更新
- 2026年6月11日
- 分配 CNA
- Linux
- 观察到的证据
- 2026年8月10日
初级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 天
- 百分位
- 8.1%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
在 Linux 内核中,已解决以下漏洞:tcp_bpf:当 tcp_bpf_send_verdict() 分配 psock->cork 失败时,调用 sk_msg_free()。syzbot 报告了以下 splat。[0] 该复现程序执行以下操作:1. 加载一个调用 bpf_msg_cork_bytes(msg, cork_bytes) 的 sk_msg 程序 2. 将该程序附加到 SOCKMAP 3. 向 SOCKMAP 添加一个套接字 4. 激活故障注入 5. 发送小于 cork_bytes 的数据 在第 5 步,由于数据小于 bpf_msg_cork_bytes() 指定的 cork_bytes,因此数据会被携带到下一次 sendmsg()。然后,tcp_bpf_send_verdict() 尝试分配 psock->cork 以保存数据,但由于故障注入 + __GFP_NOWARN,此分配会静默失败。如果分配失败,我们需要回滚 sk_msg_alloc() 所做的 sk->sk_forward_alloc 更改。当 tcp_bpf_send_verdict 分配 psock->cork 失败时,让我们调用 sk_msg_free()。"*copied" 也需要更新,以便向调用方 sendmsg 返回适当的错误。它分配 psock->cork 失败。到目前为止尚未进行任何 cork 操作,因此此补丁仅将 "*copied" 设置为 0。[0]:WARNING: net/ipv4/af_inet.c:156 at inet_sock_destruct+0x623/0x730 net/ipv4/af_inet.c:156, CPU#1: syz-executor/5983 Modules linked in: CPU: 1 UID: 0 PID: 5983 Comm: syz-executor Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025 RIP: 0010:inet_sock_destruct+0x623/0x730 net/ipv4/af_inet.c:156 Code: 0f 0b 90 e9 62 fe ff ff e8 7a db b5 f7 90 0f 0b 90 e9 95 fe ff ff e8 6c db b5 f7 90 0f 0b 90 e9 bb fe ff ff e8 5e db b5 f7 90 <0f> 0b 90 e9 e1 fe ff ff 89 f9 80 e1 07 80 c1 03 38 c1 0f 8c 9f fc RSP: 0018:ffffc90000a08b48 EFLAGS: 00010246 RAX: ffffffff8a09d0b2 RBX: dffffc0000000000 RCX: ffff888024a23c80 RDX: 0000000000000100 RSI: 0000000000000fff RDI: 0000000000000000 RBP: 0000000000000fff R08: ffff88807e07c627 R09: 1ffff1100fc0f8c4 R10: dffffc0000000000 R11: ffffed100fc0f8c5 R12: ffff88807e07c380 R13: dffffc0000000000 R14: ffff88807e07c60c R15: 1ffff1100fc0f872 FS: 00005555604c4500(0000) GS:ffff888125af1000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00005555604df5c8 CR3: 0000000032b06000 CR4: 00000000003526f0 Call Trace: <IRQ> __sk_destruct+0x86/0x660 net/core/sock.c:2339 rcu_do_batch kernel/rcu/tree.c:2605 [inline] rcu_core+0xca8/0x1770 kernel/rcu/tree.c:2861 handle_softirqs+0x286/0x870 kernel/softirq.c:579 __do_softirq kernel/softirq.c:613 [inline] invoke_softirq kernel/softirq.c:453 [inline] __irq_exit_rcu+0xca/0x1f0 kernel/softirq.c:680 irq_exit_rcu+0x9/0x30 kernel/softirq.c:696 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1052 [inline] sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1052 </IRQ>
来源
1负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。