tcp_bpf:修复 tcp_bpf_sendmsg() 的返回值(CVE-2024-46783)
CVE编号
CVE-2024-46783利用情况
暂无补丁情况
N/A披露时间
2024-09-18漏洞描述
在Linux内核中,存在一个关于tcp_bpf的漏洞。当我们在psock->cork中累积消息并在最后一个消息触发刷新时,可能会导致发送的sk_msg大小超过当前消息大小。在tcp_bpf_send_verdict()函数中,'copied'变量在某些情况下会变成负数,特别是在以下代码段中:```css468 case __SK_DROP:469 default:470 sk_msg_free_partial(sk, msg, tosend);471 sk_msg_apply_bytes(psock, tosend);472 *copied -= (tosend + delta); // 这里可能导致copied变成负数473 return -EACCES;```由于使用了不正确的'copied'返回值,这可能导致内核出现BUG,报错信息如下:```csskernel BUG at net/socket.c:733! Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT SMP```这个BUG是由于不正确的'copied'值引起的(感谢syzbot指出)。我们不应该在这里使用负的'copied'作为返回值。因此,这个问题需要在tcp_bpf的相关代码中修复,确保'copied'的值始终是正确的,避免内核出现BUG。解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。- 攻击路径 N/A
- 攻击复杂度 N/A
- 权限要求 N/A
- 影响范围 N/A
- 用户交互 N/A
- 可用性 N/A
- 保密性 N/A
- 完整性 N/A
CWE-ID | 漏洞类型 |
Exp相关链接

版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论