Linux内核的KSMBD(SMB Direct)子系统中发现一个拒绝服务漏洞,已在开源社区引发广泛关注。该漏洞编号为CVE-2025-38501,远程攻击者无需认证即可通过利用内核处理半开TCP会话的机制耗尽所有可用SMB连接。
**核心要点**
1. CVE-2025-38501允许攻击者通过半开TCP握手耗尽KSMBD连接
2. 概念验证工具"KSMBDrain"通过SYN泛洪触发漏洞
3. Linux 6.1.15+版本已修复,建议升级或对445端口实施速率限制
公开的概念验证工具KSMBDrain展示了攻击原理:攻击者只需发起数千次TCP三次握手但故意不完成会话建立,即可导致服务器无限期保持套接字连接。
KSMBD拒绝服务攻击原理
该漏洞源于KSMBD默认会无上限保留不完整连接。当客户端发送SYN包时,内核会回复SYN-ACK并等待最终ACK确认。若始终未收到ACK,KSMBD将持续占用连接槽位。攻击者通过单一IP地址重复发送SYN包,可快速耗尽/etc/ksmbd/ksmbd.conf中配置的max_connections上限,导致合法SMB流量被完全拒绝。
虽然管理员可将handshake_timeout设置为最低1分钟,但这仅能延缓攻击而无法彻底防御,因为攻击者可持续发起新的半开连接。
公开的Python版PoC利用原始套接字批量发起握手尝试。从poc.py代码片段可见其攻击方式极为简单: KSMBD拒绝服务攻击示意图该脚本针对漏洞服务器运行时,可快速耗尽连接池,导致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用户空间设置,降低handshake_timeout并限制积压连接数
鉴于SMB服务在企业网络中承担文件共享和认证等关键功能,建议尽快打补丁。KSMBDrain漏洞表明,防御利用协议特性而非代码注入或权限提升的资源耗尽攻击同样重要。持续监控和保持内核版本更新是防范CVE-2025-38501风险的关键措施。
参考来源:
Linux Kernel’s KSMBD Subsystem Vulnerability Let Remote Attackers Exhaust Server Resources
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)