🔍 CVE-2026-34829

7.5
CVSS Score
HIGH
2026-04-02
2026-07-24 21:10
✅ 완료

🇰🇷 한글 설명

Rack 웹 서버 인터페이스에서 Content-Length 헤더가 없는 multipart/form-data 요청을 처리할 때 파일 크기 제한을 적용하지 않는 취약점이 발견되었습니다. 공격자가 HTTP chunked transfer encoding을 사용하여 매우 큰 파일을 스트리밍하면 서버의 디스크 공간을 무제한으로 점유할 수 있습니다. 이로 인해 서버의 가용성이 저해되는 서비스 거부(DoS) 상태가 발생할 수 있습니다.

💡 쉬운 설명

파일을 올릴 때 크기 제한을 확인하지 않아, 공격자가 아주 큰 파일을 계속 보내 서버의 저장 공간을 가득 채울 수 있는 문제입니다. 이로 인해 서버가 멈추거나 정상적인 서비스를 제공할 수 없게 됩니다.

🇺🇸 원문 (English)

Rack is a modular Ruby web server interface. Prior to versions 2.2.23, 3.1.21, and 3.2.6, Rack::Multipart::Parser only wraps the request body in a BoundedIO when CONTENT_LENGTH is present. When a multipart/form-data request is sent without a Content-Length header, such as with HTTP chunked transfer encoding, multipart parsing continues until end-of-stream with no total size limit. For file parts, the uploaded body is written directly to a temporary file on disk rather than being constrained by the buffered in-memory upload limit. An unauthenticated attacker can therefore stream an arbitrarily large multipart file upload and consume unbounded disk space. This results in a denial of service condition for Rack applications that accept multipart form data. This issue has been patched in versions 2.2.23, 3.1.21, and 3.2.6.

📍 영향받는 시스템

Rack versions prior to 2.2.23, 3.1.21, and 3.2.6

⚔️ 공격 벡터

Content-Length 헤더가 없는 HTTP chunked transfer encoding을 이용한 대용량 multipart 파일 업로드 스트리밍

🛡️ 대응 방법

Rack 버전을 2.2.23, 3.1.21 또는 3.2.6 이상으로 업데이트하십시오.

🔧 검증 코드

출력된 Rack 버전이 취약한 버전(2.2.23, 3.1.21, 3.2.6 미만)인지 확인합니다.

Shell / Script
gem list rack

📊 CVSS Vector String

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