CVE-2025-14180CVE-2025-14180是PHP中一个高危安全漏洞,CVSS评分7.5,影响PHP 8.1.*、8.2.*、8.3.*、8.4.*和8.5.*版本。该漏洞存在于PHP的PDO PostgreSQL驱动中,当使用PDO::ATTR_EMULATE_PREPARES功能时,攻击者可以通过在预处理语句参数中注入无效字符序列(如\x99)来触发漏洞。无效字符序列会导致PostgreSQL的PQescapeStringConn函数返回NULL值,随后在pdo_parse_params()函数中对该NULL指针进行解引用操作,最终导致PHP进程崩溃( segmentation fault)。由于PHP通常作为Web服务器后端运行,这种崩溃会直接影响服务器的可用性,造成服务中断。该漏洞无需认证即可利用,攻击复杂度低,对可用性影响严重。
该漏洞的技术根源在于PDO PostgreSQL驱动的参数处理机制。当PDO::ATTR_EMULATE_PREPARES启用时,PDO会模拟预处理语句的行为,而不是完全依赖数据库驱动。攻击者构造包含无效字符序列(如\x99)的SQL参数,该参数被传递给PostgreSQL的PQescapeStringConn函数进行转义处理。由于\x99不是有效的UTF-8字符序列,PQescapeStringConn无法正确处理,返回NULL值。pdo_parse_params()函数在接收到NULL返回值后,未进行充分的空指针检查,直接对该NULL指针进行解引用操作,导致段错误(segmentation fault)。攻击者可以通过发送特制的HTTP请求或API调用来触发此漏洞,影响目标PHP应用的可用性。漏洞利用无需任何认证,且可以利用自动化工具批量扫描和利用存在该漏洞的服务器。