Linux内核的KSMBD(SMB Direct)子系统中存在一个拒绝服务漏洞,这在开源社区引起了警觉。
该问题被追踪为CVE-2025-38501,允许远程未认证的攻击者通过利用内核对半开TCP会话的处理方式,耗尽所有可用的SMB连接。
一种名为KSMBDrain的公开概念验证漏洞利用展示了攻击者如何仅通过发起数千次TCP三次握手却不完成会话,就能让KSMBD服务器不堪重负,导致服务器无限期占用套接字。
KSMBD拒绝服务攻击
该漏洞源于KSMBD的默认行为,即保留不完整连接,且对处于等待状态的SYN-ACK套接字没有上限。当客户端发送SYN时,内核会回复SYN-ACK并等待最终的ACK。
如果该确认(ACK)始终未到达,KSMBD会保持连接槽处于开放状态。攻击者通过从单个IP地址反复发送同步(SYN)数据包,可能会耗尽服务器在/etc/ksmbd/ksmbd.conf中配置的max_connections限制,从而完全阻断后续合法的SMB流量。
尽管管理员可以将握手超时时间设置为低至一分钟,但这只能减缓攻击,而不能阻止攻击,因为攻击者可以不断重新打开新的半开放会话。
这个公开可用的PoC(概念验证)由Python编写,它利用原始套接字来大规模发起握手尝试。poc.py中的一段代码片段展示了该漏洞利用的简易性:
在易受攻击的服务器上运行此脚本会迅速耗尽连接池,导致SMB共享无法访问,并有效中断文件传输和身份验证服务。
风险因素 | 详情 |
受影响产品 | Linux内核KSMBD子系统(5.3及更高版本) |
影响 | 拒绝服务 |
漏洞利用前提条件 | 与目标KSMBD服务器在TCP端口445上的网络连接;无需身份验证 |
CVSS 3.1 评分 | 尚未分配 |
缓解措施
该漏洞是在Linux内核5.3版本中KSMBD模块合并到主线时引入的。上游维护者在提交e6bb9193974059ddbb0ce7763fa3882bd60d4dc3中解决了此问题,该提交增加了可配置的积压限制,并对半开放套接字强制执行更短的tcp_synack_retries阈值。
更新后的内核包已开始分发;用户应通过升级到Linux 6.1.15或更高版本来应用此修复程序。
在无法立即进行内核升级的环境中,对TCP 445端口实施网络级速率限制以及更严格的防火墙规则,有助于减轻漏洞利用带来的影响。
此外,建议安全团队监控异常数量的SYN数据包,并调整KSMBD的用户空间设置,以缩短握手超时时间并限制积压计数。
由于SMB服务仍是企业网络中文件共享和身份验证</b0的关键组成部分,因此及时修补至关重要。
KSMBDrain漏洞凸显了防御资源耗尽攻击的重要性,这类攻击利用的是协议层面的特性,而非代码注入或权限提升。
持续监控并保持内核版本为最新状态,将降低CVE-2025-38501带来的风险。
1. 本版块文章内容及资料部分来源于网络,不代表本站观点,不对其真实性负责,也不构成任何建议。
2. 部分内容由网友自主投稿、编辑整理上传,本站仅提供交流平台,不为该类内容的版权负责。
3. 本版块提供的信息仅作参考,不保证信息的准确性、有效性、及时性和完整性。
4. 若您发现本版块有侵犯您知识产权的内容,请及时与我们联系,我们会尽快修改或删除。
5. 使用者违规、不可抗力(如黑客攻击)或第三方擅自转载引发的争议,联盟不承担责任。
6. 联盟可修订本声明,官网发布即生效,继续使用视为接受新条款。