🇰🇷 한글 설명
Node.js의 실험적 권한 모델에서 Buffer 내부 함수를 조작하여 path.resolve()의 결과를 변조할 수 있는 경로 탐색 취약점입니다. 공격자는 이를 통해 권한 모델의 보호를 우회하고 의도하지 않은 파일 시스템 경로에 접근할 수 있습니다. 이 취약점은 Node.js 20 및 21 버전의 실험적 권한 모델을 사용하는 모든 사용자에게 영향을 미칩니다.
💡 쉬운 설명
프로그램이 파일 경로를 확인하는 과정에서 보안 규칙을 속여서 허용되지 않은 파일에 접근할 수 있는 문제입니다. 해커가 시스템의 중요한 파일을 몰래 읽거나 수정할 위험이 있습니다.
🇺🇸 원문 (English)
The permission model protects itself against path traversal attacks by calling path.resolve() on any paths given by the user. If the path is to be treated as a Buffer, the implementation uses Buffer.from() to obtain a Buffer from the result of path.resolve(). By monkey-patching Buffer internals, namely, Buffer.prototype.utf8Write, the application can modify the result of path.resolve(), which leads to a path traversal vulnerability.
This vulnerability affects all users using the experimental permission model in Node.js 20 and Node.js 21.
Please note that at the time this CVE was issued, the permission model is an experimental feature of Node.js.
📍 영향받는 시스템
Node.js 20 및 21 버전의 실험적 권한 모델(Experimental Permission Model) 사용자
⚔️ 공격 벡터
Buffer.prototype.utf8Write를 몽키 패치하여 path.resolve()가 반환하는 경로 값을 조작하는 방식
🛡️ 대응 방법
Node.js를 최신 보안 패치가 적용된 버전으로 업데이트하거나 실험적 권한 모델 사용을 재검토하십시오.
🔧 검증 코드
출력된 버전이 Node.js 20 또는 21 버전인지 확인하고, 해당 버전에서 실험적 권한 모델을 활성화하여 사용하는지 점검하십시오.