🇰🇷 한글 설명
Node.js 권한 모델의 파일 시스템 강제 적용 과정에서 결함이 발견되었습니다. --allow-fs-read 권한이 제한된 상태에서도 fs.realpathSync.native() 함수를 통해 허용되지 않은 디렉토리의 파일 존재 여부를 확인하거나 경로를 열거할 수 있습니다.
💡 쉬운 설명
Node.js에서 특정 폴더만 보게끔 제한을 걸어두었지만, 특정 함수를 사용하면 제한된 구역 밖의 파일 이름이나 경로를 몰래 알아낼 수 있는 보안 허점입니다. 이는 공격자가 시스템의 구조를 파악하는 데 악용될 수 있습니다.
🇺🇸 원문 (English)
A flaw in Node.js Permission Model filesystem enforcement leaves `fs.realpathSync.native()` without the required read permission checks, while all comparable filesystem functions correctly enforce them.
As a result, code running under `--permission` with restricted `--allow-fs-read` can still use `fs.realpathSync.native()` to check file existence, resolve symlink targets, and enumerate filesystem paths outside of permitted directories.
This vulnerability affects **20.x, 22.x, 24.x, and 25.x** processes using the Permission Model where `--allow-fs-read` is intentionally restricted.
📍 영향받는 시스템
Node.js 20.x, 22.x, 24.x, 25.x (Permission Model 사용 시)
⚔️ 공격 벡터
제한된 권한 내에서 fs.realpathSync.native() 함수를 호출하여 허용되지 않은 경로의 정보를 탐색
🛡️ 대응 방법
Node.js를 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 20, 22, 24, 25 중 하나라면 해당 취약점에 노출되었을 가능성이 있습니다.
node -v | grep -E 'v(20|22|24|25)\.'