Node.js 프로젝트 팀이 실험적 기능으로 도입 중인 ‘권한 모델(Permission Model)‘의 심각한 접근 제어 우회 취약점을 해결하기 위해 긴급 보안 패치를 공식 배포했습니다. 본 취약점이 악용될 경우 --allow-fs-read, --allow-fs-write 등으로 엄격히 제한된 파일 시스템 격리 환경을 뚫고 호스트 시스템의 중요 환경설정 파일이나 클라우드 인증 토큰을 무단 탈취할 수 있습니다. 취약점의 상세 내용과 즉각적인 대응 조치를 안내합니다.
취약점 발생 배경 및 우회 메커니즘
Node.js는 v20 버전부터 외부 오픈소스 라이브러리의 공급망 공격을 방어하기 위해 --experimental-permission 샌드박스 기능을 시험 적용해 왔습니다.
그러나 이번에 발견된 결함은 경로 정규화(Path Normalization) 처리의 허점과 내부 C++ 바인딩 유효성 검증 미흡으로 인해 발생했습니다. 악의적인 스크립트가 특수하게 조작된 상대 경로를 주입하거나 프로토타입 오염을 유도할 경우, 지정된 허용 디렉터리를 벗어나 /etc/passwd나 AWS/GCP 인증 자격증명 파일에 직접 접근할 수 있는 심각한 위험이 확인되었습니다.
패치 대상 및 영향받는 버전
- Node.js v22.x 라인: 즉시 최신 보안 패치 버전으로 업데이트 필요
- Node.js v20.x (LTS) 라인: 상용 서비스 및 서버리스 런타임 최우선 업그레이드 권고
- Node.js v18.x 라인: 유지보수 종료 대상 프로젝트의 백포트 패치 적용 확인
인프라 및 개발팀을 위한 긴급 조치 가이드
- 런타임 버전 전수 조사:
node -v명령어를 통해 운영 서버, 도커(Docker) 베이스 이미지, CI/CD 러너의 버전을 전수 점검합니다. - 단일 방어선 의존 탈피: 실험적 권한 모델에만 보안을 전적으로 의존하지 말고, Docker의 읽기 전용 루트 파일시스템(
--read-only) 및 리눅스 보안 프로파일(AppArmor, seccomp)을 결합한 다층 방어 체계를 가동하십시오. - 의존성 패키지 무결성 검증:
npm audit및 보안 취약점 스캐너를 돌려 악성 패키지의 침투 여부를 검증합니다.
![[긴급] Node.js 보안 릴리스 배포: 권한 모델(Permission Model) 우회 취약점 패치 안내](/img/thumbnail/nodejs-permission-model-bypass-security-release-alert-ko.png)
![[긴급] Node.js 보안 릴리스 배포: 권한 모델(Permission Model) 우회 취약점 패치 안내](/img/thumbnail/nodejs-permission-model-bypass-security-release-alert-ko-black.png)