🔍 CVE-2018-7166

7.5
CVSS Score
HIGH
2018-08-21
2026-10-08 22:16
✅ 완료

🇰🇷 한글 설명

Node.js 10.9.0 미만 버전의 모든 버전에서 Buffer.alloc() 함수가 초기화되지 않은 메모리를 반환할 수 있는 인자 처리 결함이 존재합니다. 세 번째 인자인 인코딩 값에 숫자를 전달할 경우 내부 fill 메서드가 이를 시작 위치로 오해하여 발생하며, 이를 통해 민감한 정보가 포함된 메모리 블록이 노출될 수 있습니다.

💡 쉬운 설명

메모리를 깨끗하게 비우고 사용해야 하는 기능이 실수로 이전 데이터가 남아있는 메모리를 그대로 내어주는 버그입니다. 공격자가 이 점을 이용하면 컴퓨터 메모리에 남아있던 비밀번호나 개인정보를 훔쳐볼 수 있습니다.

🇺🇸 원문 (English)

In all versions of Node.js 10 prior to 10.9.0, an argument processing flaw can cause `Buffer.alloc()` to return uninitialized memory. This method is intended to be safe and only return initialized, or cleared, memory. The third argument specifying `encoding` can be passed as a number, this is misinterpreted by `Buffer's` internal "fill" method as the `start` to a fill operation. This flaw may be abused where `Buffer.alloc()` arguments are derived from user input to return uncleared memory blocks that may contain sensitive information.

📍 영향받는 시스템

Node.js 10.x (10.9.0 미만 버전)

⚔️ 공격 벡터

사용자 입력값이 Buffer.alloc()의 세 번째 인자로 전달될 때 숫자를 입력하여 초기화 과정을 우회함

🛡️ 대응 방법

Node.js를 10.9.0 버전 이상으로 업데이트하십시오.

🔧 검증 코드

명령어 결과로 v10.0.x부터 v10.8.x 사이의 버전이 출력되면 취약한 상태입니다.

Shell / Script
node -v | grep -E '^v10\.(0|1|2|3|4|5|6|7|8)\.'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Node.js