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带来的风险。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。


评论