ZeroPath Research 公开了 ProFTPD 的 mod_sql 扩展中存在的一个严重 SQL 注入 漏洞,编号为 CVE-2026-42167,CVSSv3 评分高达 8.1。该漏洞允许攻击者绕过身份验证、提升权限,甚至在特定配置下实现远程代码执行——最危险的是,它可以在预认证阶段被利用。
漏洞影响 ProFTPD 1.3.9 及之前的所有版本,已在 2026 年 4 月 27 日发布的 1.3.9a 版本中修复(对应提交 af90843baf7dcb8c6be1e5261be2d0b5b5850673)。
漏洞概览
mod_sql 的日志记录机制未对用户输入进行充分过滤,导致攻击者可以通过精心构造的 SQL 语句注入任意查询。根据数据库后端的不同(PostgreSQL、MySQL、SQLite 等),威胁场景包括:
- 注入后门用户:直接向身份认证数据库写入一个管理员级别的 FTP 用户,从而获得完整的文件系统访问权限。
- 权限提升:将现有低权限用户提升为 root 身份。
- 远程代码执行:在数据库主机上执行系统命令(较为依赖数据库配置与权限)。
由于漏洞发生在预认证阶段,任何能够连接到 FTP 服务的未授权用户都可能实施攻击。
时间线
- 2026 年 3 月 28 日 – ZeroPath 向 ProFTPD 维护者报告漏洞
- 2026 年 4 月 7 日 – 维护者与 ZeroPath 共同验证修复补丁
- 2026 年 4 月 24 日 – CVE-2026-42167 正式公开
- 2026 年 4 月 27 日 – 提交修复并发布 1.3.9a 版本
概念验证
ZeroPath 提供了完整的漏洞利用概念验证代码(PoC),演示了如何通过预认证 SQL 注入攻击,在 mod_sql 使用 PostgreSQL 作为后端的场景下注入一个名为backdoor的 root 用户,并成功登录获得 uid=0 的完整磁盘访问权限。
PoC 仓库地址(需对注入查询稍作修改即可适配 MySQL、SQLite 后端):
执行示例输出展示了完整的攻击流程:连接服务、确认后门账号不存在、发送 181 字节的 SQL 注入载荷(该载荷绕过了 is_escaped_text() 检查)、注入成功后使用后门账户登录,最终获取根目录访问权。
缓解措施
强烈建议所有运行 ProFTPD 并加载了 mod_sql 模块的用户立即升级至 1.3.9a 或更高版本。如果无法立即升级,应临时禁用 mod_sql 中的日志功能,或在网络层对 FTP 端口实施严格的访问控制。考虑到该漏洞已处于公开利用状态,延迟处置将面临极高的入侵风险。
|