🇰🇷 한글 설명
dompdf 0.6.1 이전 버전에서 DOMPDF_ENABLE_PHP 옵션이 활성화되면 PHP 프로토콜 래퍼를 통해 chroot 보호를 우회하고 임의 파일을 읽을 수 있는 취약점입니다. 공격자는 input_file 매개변수에 php://filter 등의 PHP 래퍼를 삽입하여 서버의 민감한 파일(설정파일, 소스코드 등)에 접근할 수 있습니다.
💡 쉬운 설명
dompdf는 HTML을 PDF로 변환하는 라이브러리인데, PHP 코드 실행 기능이 켜져있으면 특수한 링크 형식을 통해 서버의 숨겨진 파일들을 읽을 수 있습니다. 이를 통해 공격자는 데이터베이스 비밀번호나 개인정보 같은 중요 파일을 탈취할 수 있습니다.
🇺🇸 원문 (English)
dompdf.php in dompdf before 0.6.1, when DOMPDF_ENABLE_PHP is enabled, allows context-dependent attackers to bypass chroot protections and read arbitrary files via a PHP protocol and wrappers in the input_file parameter, as demonstrated by a php://filter/read=convert.base64-encode/resource in the input_file parameter.
📍 영향받는 시스템
dompdf < 0.6.1 (DOMPDF_ENABLE_PHP = true인 경우)
⚔️ 공격 벡터
input_file 매개변수에 php://filter/read=convert.base64-encode/resource 등 PHP 래퍼를 주입하여 파일 읽기
🛡️ 대응 방법
dompdf를 0.6.1 이상으로 업그레이드하거나 DOMPDF_ENABLE_PHP를 false로 비활성화
🔧 검증 코드
version이 0.6.1 이상이면 안전함. 0.6.1 미만이면 취약점 존재. composer가 없으면 grep -r 'dompdf' composer.lock 2>/dev/null으로 확인
composer show dompdf/dompdf 2>/dev/null | grep -E 'version|name'