🔍 CVE-2017-9841

9.8
CVSS Score
CRITICAL
2017-06-27
2026-04-21 18:00
✅ 완료

🇰🇷 한글 설명

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 미만이면 즉시 업그레이드 필요.

Shell / Script
find . -type f -name 'eval-stdin.php' 2>/dev/null | head -1 && composer show phpunit 2>/dev/null | grep -i version

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

PHP