CVE-2025-14179该漏洞存在于PHP的PDO Firebird驱动程序中。在特定版本(8.2.31、8.3.31等之前)中,驱动程序在准备SQL查询时未能正确处理NUL字节。由于使用了`strncat()`函数,导致包含NUL字节的字符串Token在复制时截断了结束引号,从而允许攻击者绕过`PDO::quote()`的安全机制,执行SQL注入攻击。该漏洞CVSS评分高达9.8,属于严重级别风险,无需认证即可利用。
漏洞根源在于PHP源代码中PDO Firebird驱动的查询构建逻辑。当程序使用`PDO::quote()`对用户输入进行转义并拼接到SQL语句时,如果输入中包含NUL字节(`\0`),内部的`strncat()`函数会在遇到NUL字节时停止复制字符串。这意味着原本用于闭合SQL字符串的单引号会被丢弃。数据库解析器在处理这种畸形的SQL语句时,会将原本应该是SQL关键字或后续参数的内容误认为是前一个字符串的一部分,从而破坏了SQL语句的结构。攻击者可以通过精心构造包含NUL字节和恶意SQL代码的Payload,在无需认证的情况下远程执行任意SQL命令,导致数据泄露、篡改或服务器被完全控制。