🇰🇷 한글 설명
Node.js의 node:fs 함수에서 경로를 Uint8Array 객체로 지정할 때 경로 탐색(Path Traversal) 공격을 방지하지 못하는 취약점입니다. 기존에는 문자열과 Buffer 객체에 대한 보안 검증은 이루어졌으나, Uint8Array 객체를 통한 우회 공격에는 취약한 것으로 확인되었습니다.
💡 쉬운 설명
파일을 다루는 기능에서 파일 경로를 특수한 형태의 데이터(Uint8Array)로 전달하면, 보안 검사를 피해 시스템의 민감한 파일에 접근할 수 있는 문제입니다. 공격자가 허용되지 않은 폴더나 파일에 접근할 수 있게 만듭니다.
🇺🇸 원문 (English)
Various `node:fs` functions allow specifying paths as either strings or `Uint8Array` objects. In Node.js environments, the `Buffer` class extends the `Uint8Array` class. Node.js prevents path traversal through strings (see CVE-2023-30584) and `Buffer` objects (see CVE-2023-32004), but not through non-`Buffer` `Uint8Array` objects.
This is distinct from CVE-2023-32004 which only referred to `Buffer` objects. However, the vulnerability follows the same pattern using `Uint8Array` instead of `Buffer`.
Please note that at the time this CVE was issued, the permission model is an experimental feature of Node.js.
📍 영향받는 시스템
Node.js (Uint8Array를 통한 경로 탐색이 가능한 특정 버전)
⚔️ 공격 벡터
Uint8Array 객체를 사용하여 보안 검사를 우회하는 경로 탐색 공격
🛡️ 대응 방법
Node.js를 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 Node.js 버전을 확인하여 해당 취약점이 해결된 최신 버전인지 대조하십시오.
node -e 'console.log(process.version)'