Description
PHPUnit is a testing framework for PHP. In versions 12.5.21 and 13.1.5, PHPUnit forwards PHP INI settings to child processes (used for isolated/PHPT test execution) as -d name=value command-line arguments without neutralizing INI metacharacters. Because PHP's INI parser interprets " as a string delimiter, ; as the start of a comment, and most importantly a newline as a directive separator, a value containing a newline is parsed by the child process as multiple INI directives. An attacker able to influence a single INI value can therefore inject arbitrary additional directives into the child's configuration, including auto_prepend_file, extension, disable_functions, open_basedir, and others. Setting auto_prepend_file to an attacker-controlled path yields remote code execution in the child process. This issue has been patched in versions 12.5.22 and 13.1.6.
Problem types
CWE-93: Improper Neutralization of CRLF Sequences ('CRLF Injection')
CWE-88: Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')
Product status
= 13.1.5
References
github.com/sebastianbergmann/phpunit/pull/6592
github.com/...hpunit/security/advisories/GHSA-qrr6-mg7r-m243
github.com/sebastianbergmann/phpunit/pull/6592