🇰🇷 한글 설명
Gotenberg 8.10.0부터 8.33.0 버전 사이에서 multipart 요청 처리 시 발생하는 데이터 경합(Data Race) 취약점입니다. 공격자가 조작된 요청을 보내면 공유 맵(map)에 동시 쓰기가 발생하여 프로세스가 강제 종료될 수 있습니다. 이로 인해 인증되지 않은 원격 공격자가 서비스 거부(DoS) 상태를 유발할 수 있습니다.
💡 쉬운 설명
프로그램이 여러 작업을 동시에 처리하는 과정에서 데이터가 충돌하여 시스템이 갑자기 꺼지는 문제입니다. 나쁜 의도를 가진 사람이 특수한 요청을 보내면 서버를 마비시킬 수 있습니다.
🇺🇸 원문 (English)
Gotenberg is a Docker-powered stateless API for PDF files. From 8.10.0 until 8.33.0, the newContext function in pkg/modules/api/context.go starts one errgroup.Go goroutine for each multipart downloadFrom entry and allows those goroutines to concurrently write to the shared ctx.files, ctx.diskToOriginal, and ctx.filesByField maps and slices. Go maps and slices are not safe for concurrent mutation, so a crafted multipart request containing many downloadFrom entries can trigger a data race and terminate the process with a fatal concurrent map writes runtime error. The default configuration enables downloadFrom and disables authentication, allowing an unauthenticated remote attacker to crash an exposed conversion service and cause a denial of service. This issue is fixed in version 8.33.0.
📍 영향받는 시스템
Gotenberg 8.10.0 ~ 8.33.0
⚔️ 공격 벡터
인증되지 않은 원격 공격자가 조작된 multipart 다운로드 요청을 전송하여 서비스 거부(DoS) 유발
🛡️ 대응 방법
Gotenberg를 최신 버전인 8.33.0 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 이미지의 태그 버전이 8.33.0 미만인지 확인하십시오.
docker images | grep gotenberg