🔍 CVE-2018-7159

5.3
CVSS Score
MEDIUM
2018-05-17
2026-10-08 22:16
✅ 완료

🇰🇷 한글 설명

Node.js의 HTTP 파서가 Content-Length 헤더 내의 공백을 무시하여 'Content-Length: 1 2'를 '12'로 해석하는 취약점입니다. 이는 HTTP 표준을 위반하는 동작이며, 사용자 코드에서 데이터 길이에 대한 잘못된 가정을 할 경우 보안 문제가 발생할 수 있습니다.

💡 쉬운 설명

데이터의 길이를 알려주는 항목에 실수로 공백이 들어가도 컴퓨터가 이를 무시하고 숫자를 붙여서 읽어버리는 문제입니다. 이로 인해 실제 데이터 양과 컴퓨터가 인식하는 양이 달라져 예상치 못한 오류가 생길 수 있습니다.

🇺🇸 원문 (English)

The HTTP parser in all current versions of Node.js ignores spaces in the `Content-Length` header, allowing input such as `Content-Length: 1 2` to be interpreted as having a value of `12`. The HTTP specification does not allow for spaces in the `Content-Length` value and the Node.js HTTP parser has been brought into line on this particular difference. The security risk of this flaw to Node.js users is considered to be VERY LOW as it is difficult, and may be impossible, to craft an attack that makes use of this flaw in a way that could not already be achieved by supplying an incorrect value for `Content-Length`. Vulnerabilities may exist in user-code that make incorrect assumptions about the potential accuracy of this value compared to the actual length of the data supplied. Node.js users crafting lower-level HTTP utilities are advised to re-check the length of any input supplied after parsing is complete.

📍 영향받는 시스템

Node.js의 모든 현재 버전 (취약점이 수정되기 전 버전)

⚔️ 공격 벡터

Content-Length 헤더 값에 공백을 삽입하여 HTTP 요청을 전송

🛡️ 대응 방법

Node.js를 최신 보안 패치가 적용된 버전으로 업데이트

🔧 검증 코드

출력된 Node.js 버전이 취약점이 해결된 최신 버전인지 확인

Shell / Script
node -v

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Node.js