sctp:修复 repeatport_add_sock() 中的 null-ptr-deref。(CVE-2024-44935)

admin 2024-08-28 16:20:25 Ali_nvd 来源:ZONE.CI 全球网 0 阅读模式
sctp:修复 repeatport_add_sock() 中的 null-ptr-deref。(CVE-2024-44935)

CVE编号

CVE-2024-44935

利用情况

暂无

补丁情况

N/A

披露时间

2024-08-26
漏洞描述
在Linux内核中,已经解决了一个漏洞,该漏洞涉及sctp模块中的reuseport_add_sock()函数。syzbot在访问sk2->sk_reuseport_cb时报告了一个空指针引用异常(null-ptr-deref)。这个问题首先通过创建一个带有SO_REUSEPORT选项的监听器来重现,然后尝试在相同的端口上创建另一个监听器并在第一个监听器关闭时并发调用它。第二个listen()调用会调用reuseport_add_sock(),此时sk2(第一个监听器的代表)的sk_reuseport_cb并未预期会被清除,但close()操作会通过reuseport_detach_sock()清除它。问题在于SCTP模块没有正确地同步reuseport_alloc(),reuseport_add_sock()和reuseport_detach_sock()的操作。如果这些函数操作的套接字被分类到同一个reuseport组中,那么调用者需要提供同步操作。否则,这样的套接字会形成多个相同的reuseport组,除了一个组外,其他所有组都会静默失效。此外,还会出现报告的空指针引用异常。TCP和UDP通过持有哈希桶锁来保证不会发生这种情况。因此,我们需要在__sctp_hash_endpoint()和__sctp_unhash_endpoint()中应用类似的锁定策略。如果不这样做,可能会出现一般保护错误,可能是由于非规范地址的访问引起的。这个错误报告了一个空指针解引用在范围[0x0000000000000010-0x0000000000000017]中发生。这个错误发生在内核尝试在并发环境中管理同一端口的多个SCTP监听器时。这个问题可能导致系统崩溃和数据丢失。修复这个问题需要正确地同步对共享资源的访问,以防止此类空指针解引用错误的发生。
解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。
参考链接
https://git.kernel.org/stable/c/05e4a0fa248240efd99a539853e844f0f0a9e6a5
https://git.kernel.org/stable/c/1407be30fc17eff918a98e0a990c0e988f11dc84
https://git.kernel.org/stable/c/52319d9d2f522ed939af31af70f8c3a0f0f67e6c
https://git.kernel.org/stable/c/54b303d8f9702b8ab618c5032fae886b16356928
https://git.kernel.org/stable/c/9ab0faa7f9ffe31296dbb9bbe6f76c72c14eea18
https://git.kernel.org/stable/c/c9b3fc4f157867e858734e31022ebee8a24f0de7
https://git.kernel.org/stable/c/e809a84c802377ef61525a298a1ec1728759b913
受影响软件情况
# 类型 厂商 产品 版本 影响面
1
运行在以下环境
系统 debian_12 linux * Up to (excluding) 6.1.106-1
运行在以下环境
系统 linux linux_kernel * From (including) 5.0 Up to (excluding) 5.4.282
运行在以下环境
系统 linux linux_kernel * From (including) 5.11 Up to (excluding) 5.15.165
运行在以下环境
系统 linux linux_kernel * From (including) 5.16 Up to (excluding) 6.1.105
运行在以下环境
系统 linux linux_kernel * From (including) 5.5 Up to (excluding) 5.10.224
运行在以下环境
系统 linux linux_kernel * From (including) 6.2 Up to (excluding) 6.6.46
运行在以下环境
系统 linux linux_kernel * From (including) 6.7 Up to (excluding) 6.10.5
运行在以下环境
系统 linux linux_kernel 6.11 -
CVSS3评分 5.5
  • 攻击路径 本地
  • 攻击复杂度 低
  • 权限要求 低
  • 影响范围 未更改
  • 用户交互 无
  • 可用性 高
  • 保密性 无
  • 完整性 无
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CWE-ID 漏洞类型
CWE-476 空指针解引用
- avd.aliyun.com
weinxin
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论:0   参与:  0