피드로 돌아가기
Node.js BlogSecurity
원문 읽기
Node.js 20.12.2가 Windows의 child_process.spawn에서 shell 옵션 미활성화 시 명령어 인젝션 취약점(CVE-2024-27980) 패치
Node.js 20.12.2 (LTS)
AI 요약
Context
Windows 환경에서 child_process.spawn()을 shell 옵션 없이 사용할 때 args 파라미터를 통한 명령어 인젝션 공격이 가능했다. 이는 보안 경계 우회로 인해 의도하지 않은 명령어 실행을 야기할 수 있다.
Technical Solution
- CVE-2024-27980 취약점 패치: Windows 환경에서 child_process.spawn()의 args 파라미터 검증 강화
- Node.js 20.12.2 LTS 릴리스: 보안 취약점을 해결한 새 버전 배포
- 다중 플랫폼 바이너리 제공: Windows(32/64/ARM64), macOS(Intel/Apple Silicon), Linux(x64/ARM/PPC/s390x), AIX 지원
Key Takeaway
Windows 환경에서 외부 입력을 child_process.spawn()에 전달할 때는 shell 옵션 활성화 상태와 관계없이 입력값 검증이 필수이며, 정기적인 보안 업데이트 적용이 취약점으로 인한 명령어 인젝션 공격을 방어하는 핵심 방어선이다.
실천 포인트
Node.js를 사용하는 백엔드 서비스에서 child_process.spawn()으로 외부 프로세스를 실행할 때, Windows 환경이면 CVE-2024-27980 패치가 적용된 Node.js
2
0.
1
2.2 이상으로 업그레이드하고, 모든 args 파라미터에 대해 화이트리스트 기반 검증을 적용하면 명령어 인젝션 공격을 방지할 수 있다.