file was designed to help PHPUnit run tests by executing code sent via "standard input." However, in certain configurations, it allowed remote attackers to execute arbitrary PHP code on a web server simply by sending a POST request to that URL. The "Index of" Context:
For Apache, edit your .htaccess or virtual host configuration:
Ensure the autoindex directive is set to off inside your server block: server ... autoindex off; Use code with caution. Step 3: Change Your Web Root
– attackers can guess common variations.
If you must keep the vendor folder as-is, manually delete the PHPUnit directory from your live server: rm -rf vendor/phpunit/phpunit Use code with caution. 2. Correct Web Server Document Root
An attacker can send a crafted HTTP POST request to this file, executing arbitrary PHP code on the server without authentication. Severity: 9.8 Critical (CVSS v3).
When an attacker locates an exposed eval-stdin.php file, they send a crafted HTTP POST request to the URL. Conceptual Example of an Attack The attacker sends a request structured like this:
Delete eval-stdin.php and, ideally, the entire PHPUnit directory if you are not actively running tests on the production server:
Accessing database credentials, customer records, API keys, and environment configuration files ( .env ). Defacement: Altering the website's appearance or content.
PHPUnit is a popular programmer-oriented testing framework for PHP.
This vulnerability typically manifests due to two primary deployment errors:
Or at least to version 4.8.28 , 5.7.22 , or 6.5.0 (the first patched releases). The vulnerable file was removed entirely in later versions.
: The parent /vendor/ folder is placed directly inside the public-facing web root ( public_html or www ) instead of being safely walled off outside it.
file was designed to help PHPUnit run tests by executing code sent via "standard input." However, in certain configurations, it allowed remote attackers to execute arbitrary PHP code on a web server simply by sending a POST request to that URL. The "Index of" Context:
For Apache, edit your .htaccess or virtual host configuration:
Ensure the autoindex directive is set to off inside your server block: server ... autoindex off; Use code with caution. Step 3: Change Your Web Root
– attackers can guess common variations.
If you must keep the vendor folder as-is, manually delete the PHPUnit directory from your live server: rm -rf vendor/phpunit/phpunit Use code with caution. 2. Correct Web Server Document Root
An attacker can send a crafted HTTP POST request to this file, executing arbitrary PHP code on the server without authentication. Severity: 9.8 Critical (CVSS v3).
When an attacker locates an exposed eval-stdin.php file, they send a crafted HTTP POST request to the URL. Conceptual Example of an Attack The attacker sends a request structured like this:
Delete eval-stdin.php and, ideally, the entire PHPUnit directory if you are not actively running tests on the production server:
Accessing database credentials, customer records, API keys, and environment configuration files ( .env ). Defacement: Altering the website's appearance or content.
PHPUnit is a popular programmer-oriented testing framework for PHP.
This vulnerability typically manifests due to two primary deployment errors:
Or at least to version 4.8.28 , 5.7.22 , or 6.5.0 (the first patched releases). The vulnerable file was removed entirely in later versions.
: The parent /vendor/ folder is placed directly inside the public-facing web root ( public_html or www ) instead of being safely walled off outside it.