
POC_CVE-2026-42589
Gotenberg에 영향을 미치는 CVE-2026-42589에 대한 로컬 재현 랩 및 nuclei 템플릿 초안
CVE-2026-42589는 다음 엔드포인트의 메타데이터 키 개행(newline) 주입으로 인해 발생하는 Gotenberg의 인증 없는 원격 코드 실행(RCE) 취약점입니다:
POST /forms/pdfengines/metadata/write
취약한 Gotenberg는 제어 문자를 거부하지 않고 사용자가 제어하는 메타데이터 키를 ExifTool로 전달합니다. JSON 이스케이프된 개행을 포함하는 메타데이터 키는 추가 ExifTool 인자로 분할될 수 있습니다.
이 랩은 다음을 검증하는 데 사용되었습니다:
gotenberg/gotenberg:8.29.1에서의 취약 동작gotenberg/gotenberg:8.31.0에서의 패치된 동작nuclei 템플릿은 비파괴적인 sleep 6 타이밍 검사만 사용합니다.
docker-compose.ymldocker-compose.latest.ymlCVE-2026-42589.yamlmanual_verify.pysample.pdfREADME.mdGotenberg 8.29.1 시작:
docker compose down -v
docker compose up -d
docker compose logs --tail=100 gotenberg
버전 확인:
curl -s http://127.0.0.1:3000/version
수동 원시 multipart 타이밍 검사:
python3 manual_verify.py http://127.0.0.1:3000
예상되는 취약 신호:
HTTP/1.1 500 Internal Server Error
TOTAL_TIME=6.xs
관찰된 취약 결과:
HTTP/1.1 500 Internal Server Error
TOTAL_TIME=6.300s
Internal Server Error
Gotenberg 8.31.0 시작:
docker compose -f docker-compose.latest.yml down -v
docker compose -f docker-compose.latest.yml up -d
docker compose -f docker-compose.latest.yml logs --tail=100 gotenberg
버전 확인:
curl -s http://127.0.0.1:3000/version
동일한 수동 타이밍 검사 실행:
python3 manual_verify.py http://127.0.0.1:3000
관찰된 패치 버전 결과:
HTTP/1.1 400 Bad Request
TOTAL_TIME=0.145s
At least one PDF engine cannot process the requested metadata, while others may have failed to convert due to different issues
템플릿 검증:
nuclei -duc -validate -t CVE-2026-42589.yaml
취약 대상에 대해 실행:
nuclei -duc -u http://127.0.0.1:3000 -t CVE-2026-42589.yaml
예상 동작:
8.29.1: 지연된 500 응답 후 매치8.31.0: 매치 없음관찰된 취약 결과:
[CVE-2026-42589] [http] [critical] http://127.0.0.1:3000/forms/pdfengines/metadata/write
[INF] Scan completed in 6.245907708s. 1 matches found.
관찰된 패치 버전 결과:
[INF] Scan completed in 93.01425ms. No results found.