🇰🇷 한글 설명
Node.js 8.x 및 9.x 버전에서 Buffer.alloc()의 인코딩 매개변수가 fill 값의 인코딩과 일치하지 않을 때 버퍼가 제대로 초기화되지 않는 버그가 존재했습니다. 이는 이전 메모리 데이터가 노출될 수 있는 정보 유출 위험을 야기합니다. 수정된 버전에서는 인코딩 불일치 시 버퍼가 모두 0으로 초기화되도록 변경되었습니다.
💡 쉬운 설명
Node.js에서 메모리 공간을 생성할 때 잘못된 설정으로 인해 이전 데이터가 그대로 남아있을 수 있었습니다. 업데이트를 통해 이런 경우 메모리가 깨끗하게 초기화되도록 수정되었습니다.
🇺🇸 원문 (English)
Node.js had a bug in versions 8.X and 9.X which caused buffers to not be initialized when the encoding for the fill value did not match the encoding specified. For example, 'Buffer.alloc(0x100, "This is not correctly encoded", "hex");' The buffer implementation was updated such that the buffer will be initialized to all zeros in these cases.
📍 영향받는 시스템
Node.js 8.x, 9.x 버전
⚔️ 공격 벡터
잘못된 인코딩으로 Buffer 객체를 생성하여 초기화되지 않은 메모리에 접근 및 민감 정보 유출
🛡️ 대응 방법
Node.js를 10.0.0 이상의 패치된 버전으로 업그레이드
🔧 검증 코드
명령어가 버전을 출력하면 취약한 버전이 설치된 것이고, v10.0.0 이상이면 안전합니다.
node --version | grep -E '^v(8\.|9\.)'