🇰🇷 한글 설명
Node.js 실험적 권한 모델에서 --allow-fs-write 플래그 사용 시, fs.fchown 또는 fs.fchmod 같은 파일 디스크립터 기반 함수들이 읽기 전용 디스크립터를 통해 파일의 소유자 및 권한을 변경할 수 있는 보안 우회 취약점입니다. 권한 모델이 파일 디스크립터 기반 작업을 검증하지 않아서 발생합니다.
💡 쉬운 설명
Node.js에서 권한을 제한하려고 해도, 특정 파일 함수를 사용하면 그 제한을 무시하고 파일 권한을 임의로 변경할 수 있습니다. 이는 읽기만 허용된 파일도 수정할 수 있게 해줍니다.
🇺🇸 원문 (English)
A vulnerability has been identified in Node.js, affecting users of the experimental permission model when the --allow-fs-write flag is used.
Node.js Permission Model do not operate on file descriptors, however, operations such as fs.fchown or fs.fchmod can use a "read-only" file descriptor to change the owner and permissions of a file.
📍 영향받는 시스템
Node.js 20.0.0 이상 (실험적 권한 모델 사용 시)
⚔️ 공격 벡터
로컬 공격자가 --allow-fs-write 플래그로 실행되는 Node.js 애플리케이션 내에서 fs.fchown/fs.fchmod 함수를 호출하여 파일 권한 우회
🛡️ 대응 방법
Node.js를 최신 패치 버전으로 업그레이드 (18.20.0+, 20.11.0+, 22.0.0+)
🔧 검증 코드
실행 후 버전 번호 확인: 18.20.0 미만, 20.11.0 미만, 22.0.0 미만일 경우 패치 필요
node --version | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' && node -e "console.log(process.versions.node)"