🇰🇷 한글 설명
PHP 4.4.4, 5.1.6, 5.2.1의 readfile 함수에서 'php://../../' 프로토콜 래퍼를 이용한 경로 순회 공격으로 safe_mode 제한을 우회하는 취약점이다. 공격자가 이를 악용하면 웹 루트 외부의 임의의 파일을 읽을 수 있어 시스템 정보 유출 위험이 있다.
💡 쉬운 설명
PHP 웹 서버의 파일 읽기 기능에서 특수한 주소 형식(php://)을 사용하면 서버 보안 제한을 무시하고 보호된 파일을 읽을 수 있는 버그다. 공격자가 이를 이용하면 암호, 설정 파일 등 민감한 정보를 도용할 수 있다.
🇺🇸 원문 (English)
The readfile function in PHP 4.4.4, 5.1.6, and 5.2.1 allows context-dependent attackers to bypass safe_mode restrictions and read arbitrary files by referring to local files with a certain URL syntax instead of a pathname syntax, as demonstrated by a filename preceded a "php://../../" sequence.
📍 영향받는 시스템
PHP 4.4.4, 5.1.6, 5.2.1
⚔️ 공격 벡터
readfile() 함수 호출 시 'php://../../' 시퀀스를 포함한 URI를 전달하여 경로 정규화 우회 및 safe_mode 기반 접근 제어 우회
🛡️ 대응 방법
PHP를 5.2.2 이상으로 업데이트하거나 stream wrapper 기능 제한 설정 적용 (allow_url_fopen, allow_url_include 비활성화)
🔧 검증 코드
취약한 버전이 출력되면 즉시 업데이트 필요, 아무것도 출력되지 않으면 안전한 버전임
php -v 2>/dev/null | awk '{print $2}' | grep -E '^(4\.4\.4|5\.[12]\.[0-1])'