CVE-2026-44331ProFTPD在特定版本之前存在SQL注入漏洞。该漏洞位于contrib/mod_wrap2_sql.c文件的sqltab_fetch_clients_cb()函数中。当服务器启用了UseReverseDNS选项时,攻击者可以通过控制反向DNS查找的结果(即伪造的域名),向SQL查询中注入任意恶意命令。由于程序在处理攻击者提供的主机名时未进行适当的转义,导致攻击者无需认证即可利用此漏洞,可能造成数据泄露、数据篡改或服务拒绝等严重后果。
该漏洞的核心原因在于ProFTPD的mod_wrap2_sql模块在处理反向DNS解析结果时存在输入验证缺失。具体而言,当配置项UseReverseDNS被设置为on时,服务器会尝试解析连接客户端的IP地址对应的域名。随后,这个域名被直接传递给sqltab_fetch_clients_cb()函数用于构建SQL查询,而未经过任何过滤或转义处理。由于攻击者可以控制反向DNS记录(通过控制恶意域名的DNS服务器),他们能够构造包含特殊SQL字符(如单引号、注释符等)的域名。当ProFTPD使用此域名查询数据库(例如检查访问控制列表)时,恶意注入的SQL代码将被数据库服务器执行。虽然DNS名称的字符限制可能对利用造成一定约束,但通过精心构造Payload,攻击者仍可执行盲注或联合查询攻击,从而绕过认证或提取敏感数据。