🔍 CVE-2026-18540

3.7
CVSS Score
LOW
2026-09-04
2026-09-16 20:41
✅ 완료

🇰🇷 한글 설명

undici의 retry interceptor가 이전 부분 응답의 바디에 새로운 바디를 추가하여 Content-Length보다 긴 응답을 생성할 수 있는 취약점입니다. 이로 인해 응답 프레임이 비정상적으로 전달될 경우 다운스트림에서 응답 분할(Response Splitting) 또는 동기화 오류(Desynchronization)가 발생할 수 있습니다.

💡 쉬운 설명

데이터를 다시 받는 과정에서 원래 보내기로 한 양보다 더 많은 데이터를 보내버리는 오류가 있습니다. 이로 인해 데이터가 섞이거나 공격자가 가짜 응답을 끼워 넣을 수 있는 위험이 있습니다.

🇺🇸 원문 (English)

undici's retry interceptor can append the body of a ranged retry response to bytes already delivered from an earlier partial response while still presenting the original response's status and headers. This happens when an upstream server delivers part of a body without a trustworthy resume checkpoint, for example a non-success response whose headers were already sent or a partial-content response with an unusable content range, then closes the connection and answers the resumed range request with more bytes. As a result the response body can be longer than the Content-Length that the application observes. An application that relays such a response to a downstream HTTP/1.1 peer without normalizing the framing can emit a body that exceeds the forwarded Content-Length, and the excess bytes can be interpreted as the start of a following response, which enables downstream response splitting or desynchronization. Exploitation requires an attacker-controlled upstream server and an application that forwards the response through a framing-sensitive path. This affects undici versions before 6.28.1, from 7.0.0 up to 7.29.1, and from 8.0.0 up to 8.10.2. Users should upgrade to undici 6.28.1, 7.29.1, or 8.10.2.

📍 영향받는 시스템

undici < 6.28.1, 7.0.0 ~ 7.29.1, 8.0.0 ~ 8.10.2

⚔️ 공격 벡터

공격자가 제어하는 업스트림 서버를 통해 비정상적인 범위 요청(Range Request) 응답을 유도하여 발생

🛡️ 대응 방법

undici 버전을 6.28.1, 7.29.1 또는 8.10.2 이상으로 업그레이드

🔧 검증 코드

출력된 undici의 버전이 취약한 버전 범위에 포함되는지 확인

Shell / Script
npm list undici

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

IBM WebSphere Application Server