🇰🇷 한글 설명
PHPUnit 4.8.28 이전 및 5.x 5.6.3 이전 버전의 eval-stdin.php 파일에서 HTTP POST 요청으로 전송된 "<?php " 문자열을 포함한 임의의 PHP 코드를 실행할 수 있습니다. /vendor 폴더가 웹에 노출되어 있으면 외부 공격자가 직접 해당 파일에 접근하여 서버를 완전히 장악할 수 있습니다.
💡 쉬운 설명
PHPUnit 테스트 도구가 실수로 웹에 노출되면 누구나 원격으로 서버의 PHP 코드를 실행할 수 있습니다. 이를 통해 공격자는 데이터베이스 접근, 파일 삭제, 악성 코드 설치 등 모든 작업을 수행할 수 있습니다.
🇺🇸 원문 (English)
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP code via HTTP POST data beginning with a "<?php " substring, as demonstrated by an attack on a site with an exposed /vendor folder, i.e., external access to the /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php URI.
📍 영향받는 시스템
PHPUnit 4.8.27 이하, PHPUnit 5.0.0 ~ 5.6.2
⚔️ 공격 벡터
/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php에 HTTP POST로 PHP 코드 전송
🛡️ 대응 방법
PHPUnit을 4.8.28 이상 또는 5.6.3 이상으로 업그레이드하고 /vendor 디렉토리를 웹 루트에서 제외 설정
🔧 검증 코드
eval-stdin.php 파일이 발견되면 취약점 있음. PHPUnit 버전이 4.8.28 미만 또는 5.6.3 미만이면 즉시 업그레이드 필요.
find . -type f -name 'eval-stdin.php' 2>/dev/null | head -1 && composer show phpunit 2>/dev/null | grep -i version