🔍 CVE-2021-41136

3.7
CVSS Score
LOW
2021-10-12
2026-06-17 04:07
✅ 완료

🇰🇷 한글 설명

Ruby/Rack 애플리케이션용 HTTP 1.1 서버인 Puma의 특정 버전에서 HTTP 요청 스머글링 취약점이 발견되었습니다. Apache Traffic Server와 같은 프록시를 사용할 때 HTTP 헤더에 LF(Line Feed) 문자가 포함되면, 프록시와 서버 간의 요청 해석 차이로 인해 다른 클라이언트의 응답이 잘못 전달될 수 있습니다.

💡 쉬운 설명

해커가 특수한 요청을 보내 서버를 혼란스럽게 만들어, 다른 사용자의 개인 정보가 담긴 응답을 가로챌 수 있는 문제입니다. 프록시 서버와 Puma 서버가 서로 요청을 다르게 이해할 때 발생합니다.

🇺🇸 원문 (English)

Puma is a HTTP 1.1 server for Ruby/Rack applications. Prior to versions 5.5.1 and 4.3.9, using `puma` with a proxy which forwards HTTP header values which contain the LF character could allow HTTP request smugggling. A client could smuggle a request through a proxy, causing the proxy to send a response back to another unknown client. The only proxy which has this behavior, as far as the Puma team is aware of, is Apache Traffic Server. If the proxy uses persistent connections and the client adds another request in via HTTP pipelining, the proxy may mistake it as the first request's body. Puma, however, would see it as two requests, and when processing the second request, send back a response that the proxy does not expect. If the proxy has reused the persistent connection to Puma to send another request for a different client, the second response from the first client will be sent to the second client. This vulnerability was patched in Puma 5.5.1 and 4.3.9. As a workaround, do not use Apache Traffic Server with `puma`.

📍 영향받는 시스템

Puma versions prior to 5.5.1 and 4.3.9

⚔️ 공격 벡터

HTTP 헤더에 LF 문자를 포함하여 프록시와 서버 간의 요청 해석 차이를 이용한 HTTP Request Smuggling

🛡️ 대응 방법

Puma를 5.5.1 또는 4.3.9 이상의 버전으로 업데이트하거나, Apache Traffic Server 사용을 중단하십시오.

🔧 검증 코드

출력된 Puma 버전이 5.5.1 또는 4.3.9보다 낮은 경우 취약한 상태입니다.

Shell / Script
gem list puma | grep -E '(\(5\.5\.1\)|\(4\.3\.9\))' || gem list puma

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Apache HTTP Server