CVE-2026-41570PHPUnit在特定版本中存在安全漏洞,由于在向子进程传递PHP INI设置时未对特殊字符(如换行符)进行过滤,导致攻击者可通过篡改INI值注入恶意指令。攻击者可利用此漏洞修改`auto_prepend_file`配置,从而在子测试进程中执行任意代码,实现远程代码执行。
该漏洞的核心原理在于PHPUnit处理测试隔离时的不当操作。当PHPUnit运行隔离测试或PHPT测试时,它会将父进程的PHP INI设置通过命令行参数`-d name=value`传递给子进程。然而,程序未对INI元字符(如双引号、分号、换行符)进行中和处理。特别是换行符,在PHP INI解析器中被视为指令分隔符。如果攻击者能够影响单个INI配置的值,并在其中注入换行符,子进程的解析器会将换行后的内容误认为是一个新的INI指令。利用这一机制,攻击者可以注入`auto_prepend_file`、`extension`或`disable_functions`等关键配置。特别是将`auto_prepend_file`设置为攻击者可控的恶意文件路径,PHP引擎在启动子进程时会自动包含并执行该文件中的代码,从而导致远程代码执行。