피드로 돌아가기
Node.js 21.7.3 (Current)
Node.js BlogNode.js Blog
Security

Node.js 21.7.3에서 Windows의 child_process.spawn 함수에서 shell 옵션 미활성화 시 발생하는 명령어 인젝션 취약점(CVE-2024-27980) 패치

Node.js 21.7.3 (Current)

2024년 4월 10일2beginner

Context

Windows 환경에서 child_process.spawn 함수 사용 시 shell 옵션을 활성화하지 않았음에도 불구하고 args 파라미터를 통한 명령어 인젝션이 가능한 보안 취약점이 존재했다.

Technical Solution

  • CVE-2024-27980 보안 취약점 패치: Windows 플랫폼의 child_process.spawn에서 args 파라미터 처리 방식 수정
  • 여러 플랫폼 지원: Windows(32-bit, 64-bit, ARM 64-bit), macOS(Intel 64-bit, Apple Silicon), Linux(x64, ARM variants, PPC LE, s390x), AIX 바이너리 배포
  • 설치 형식 다양화: MSI 인스톨러, ZIP/TAR/7z 압축 바이너리, 소스코드 패키지 제공

Key Takeaway

shell 옵션을 명시적으로 비활성화한 자식 프로세스 실행에서도 운영체제별 기본 동작의 차이로 인한 보안 취약점이 발생할 수 있으므로, 크로스 플랫폼 보안 패치 검증의 중요성이 강조된다.


Node.js 애플리케이션에서 사용자 입력을 child_process.spawn의 args 파라미터로 전달하는 경우,

2

1.

7.3 이상 버전으로 업그레이드하여 Windows 환경에서의 명령어 인젝션 공격으로부터 보호해야 한다.

원문 읽기