CVE-2025-14388CVE-2025-14388是WordPress PhastPress插件中的一个严重安全漏洞,CVSS评分高达9.8分(严重级别)。该漏洞允许未经身份验证的远程攻击者通过构造特殊的URL请求,利用空字节注入技术绕过文件扩展名验证机制,读取Web服务器根目录下的任意文件,包括敏感的配置文件如wp-config.php等。漏洞根源在于PhastPress插件的getExtensionForURL()函数和appendNormalized()函数之间存在逻辑不一致:前者对URL解码后的路径进行扩展名验证,而后者在构建文件系统路径时会截断空字节后的内容。这种设计缺陷使得攻击者可以通过双URL编码的空字节(%2500)配合允许的扩展名(.txt)来绕过安全检查,成功读取任意文件。此漏洞影响PhastPress插件3.7及之前的所有版本,由于无需认证即可利用,且对机密性、完整性和可用性均造成严重影响,建议所有使用该插件的用户立即采取修复措施。
漏洞的技术原理基于空字节注入和URL编码绕过技术。PhastPress插件的getExtensionForURL()函数在验证文件扩展名时,使用URL解码后的路径进行检测。例如,当攻击者请求包含%2500.txt的文件时,URL解码后变为%00.txt,此时函数会检查.txt是否为允许的扩展名,由于.txt在白名单中,验证通过。然而,在appendNormalized()函数构建实际文件系统路径时,PHP会将%00(即空字节)视为字符串终止符,截断其后的所有内容。这样攻击者就可以构造如/path/to/wp-config.php%2500.txt的请求,其中%2500双URL编码后解码为一个空字节,最终导致服务器读取wp-config.php文件内容。漏洞利用的关键步骤包括:1) 使用双URL编码的空字节(%2500)绕过扩展名检查;2) 配合允许的扩展名(.txt)通过安全验证;3) 利用空字节截断特性读取任意文件。攻击者通常利用此漏洞读取wp-config.php获取数据库凭据,或读取其他敏感配置文件。