🔍 CVE-2026-42594

7.5
CVSS Score
HIGH
2026-05-14
2026-06-17 10:48
✅ 완료

🇰🇷 한글 설명

Gotenberg의 webhook 미들웨어가 요청 컨텍스트를 동시에 처리할 때 context를 제대로 정리하지 않아, 동시 요청들이 같은 컨텍스트를 재사용하면서 panic이 발생하고 프로세스가 중단됩니다. 인증 없이 접근 가능한 webhook 경로를 통해 대량의 동시 요청을 전송하여 서비스 거부 공격이 가능합니다.

💡 쉬운 설명

Gotenberg PDF 변환 서비스에서 여러 요청을 동시에 처리할 때 내부 상태가 꼬여서 서비스가 다운되는 버그입니다. 누구나 특정 URL에 요청을 많이 보내면 서비스를 중단시킬 수 있습니다.

🇺🇸 원문 (English)

Gotenberg is a Docker-powered stateless API for PDF files. Prior to 8.32.0, the webhook middleware spawns a goroutine that holds a reference to the request's echo.Context after the synchronous handler returns ErrAsyncProcess and Echo recycles the context back to its sync.Pool. When a concurrent request claims the recycled context, c.Reset() clears the store. If the webhook goroutine reaches hardTimeoutMiddleware at that moment, an unchecked type assertion on a nil store entry panics outside any recover() scope, crashing the Gotenberg process. Any anonymous caller reaches the webhook path (default webhook-deny-list filters only the webhook destination, not the submitter). A single-source stress of ~24 webhook requests plus ~60 GET /version requests crashes the process in about two seconds. This vulnerability is fixed in 8.32.0.

📍 영향받는 시스템

Gotenberg < 8.32.0

⚔️ 공격 벡터

익명 사용자가 webhook 경로에 약 24개의 webhook 요청과 60개의 GET /version 요청을 동시에 전송하여 프로세스 crash 유도 (약 2초 내 완성)

🛡️ 대응 방법

Gotenberg를 8.32.0 이상으로 업그레이드

🔧 검증 코드

버전 번호가 8.32.0 이상이면 패치됨, 그 이하면 업그레이드 필요, 서비스 미실행 시 연결 불가 에러 발생

Shell / Script
curl -s http://localhost:3000/version 2>/dev/null | grep -oE '"version":"[^"]*"'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Docker