看雪学苑 2025-09-17 17:59 上海
Linux内核KSMBD子系统漏洞可致服务器资源耗尽。
近期,Linux内核的KSMBD(SMB Direct)子系统被曝出存在拒绝服务漏洞,在开源社区引发广泛关注。该漏洞编号为CVE - 2025 - 38501,远程且未通过身份验证的攻击者可利用内核对半开TCP会话的处理方式,耗尽所有可用的SMB连接。
此漏洞的关键在于,它能让攻击者通过半开的TCP握手来耗尽KSMBD连接。一款名为“KSMBDrain”的概念验证(PoC)漏洞利用程序,会向服务器大量发送SYN数据包,从而触发该漏洞。目前,Linux 6.1.15及更高版本已针对此漏洞发布补丁,用户可选择升级内核,或者对445端口进行速率限制。
从漏洞原理来看,该缺陷源于KSMBD在处理不完整连接时的默认行为——它会保留这些不完整连接,且对挂起的SYN - ACK套接字没有上限限制。当客户端发送SYN数据包时,内核会回复SYN - ACK,并等待最终的ACK。如果ACK始终不到达,KSMBD就会一直保持连接槽处于打开状态。攻击者通过从单个IP地址重复发送SYN数据包,能够使服务器在`/etc/ksmbd/ksmbd.conf`中配置的`max_connections`限制达到饱和,进而完全拒绝后续合法的SMB流量。
尽管管理员可以将`handshake_timeout`设置为低至一分钟,但这只是减缓攻击速度,而非阻止攻击,因为攻击者可以持续重新打开新的半开会话。
公开的PoC漏洞利用程序由Python编写,利用原始套接字来大规模发起握手尝试。从`poc.py`的代码片段可以看出,这个漏洞利用程序实现起来非常简单。当针对易受攻击的服务器运行该脚本时,会迅速耗尽连接池,导致SMB共享无法访问,文件传输和身份验证服务也会实际上陷入停滞。
该漏洞是在Linux内核5.3版本时引入的,当时KSMBD模块被合并到主线中。上游维护人员通过提交e6bb9193974059ddbb0ce7763fa3882bd60d4dc3来解决了这个问题,此次提交添加了可配置的积压限制,并对半开套接字强制执行更短的`tcp_synack_retries`阈值。各发行版已经开始推出更新的内核软件包,用户应通过升级到Linux 6.1.15或更高版本来应用该修复。
在无法立即升级内核的环境中,对TCP 445端口进行网络级速率限制以及采用更严格的防火墙规则,有助于减轻漏洞被利用的风险。此外,安全团队建议监控异常数量的SYN数据包,并调整KSMBD的用户空间设置,以降低`handshake_timeout`并限制积压计数。
由于SMB服务在企业网络中仍是文件共享和身份验证的关键组件,及时打补丁至关重要。“KSMBDrain”漏洞利用程序凸显了防御资源耗尽攻击的重要性,这类攻击利用的是协议级别的特性,而非代码注入或权限提升。持续监控并保持内核版本为最新,将降低CVE - 2025 - 38501带来的风险。
资讯来源:securityaffairs
转载请注明出处和本文链接
﹀
﹀
﹀
球分享
球点赞
球在看
点击阅读原文查看更多
