2026년 10월 21일 Node.js 프로젝트는 지원 중인 22.x, 24.x, 26.x의 보안 업데이트를 공개했습니다. 그중 Brotli 압축 해제 결함은 커뮤니티에서 Node2Shell이라고 부릅니다.
해당 취약점은 CVE-2026-111497입니다. Node.js에 포함된 Brotli 디코더가 비정상 압축 데이터를 풀 때 내부 버퍼를 넘어 기록할 수 있습니다. 프로세스가 멈추거나, 메모리 내용이 새거나, 원격 코드 실행으로 이어질 수 있습니다. Node.js 공식 등급은 높음입니다. 애플리케이션이 신뢰할 수 없는 Brotli 데이터를 해제할 때 영향을 받습니다. 내장 fetch가 br 응답을 풀거나, Express 5 등이 압축된 요청 본문을 풀거나, node:zlib로 Brotli를 직접 푸는 경우가 해당합니다.
같은 업데이트에는 호스트 확인을 우회할 수 있는 항목도 있습니다. CVE-2026-105482는 널 문자가 들어간 이름을 DNS가 잘라 조회합니다. CVE-2026-105483과 CVE-2026-106069는 IP 표기가 다를 때 TLS 인증서의 호스트 검증이 어긋날 수 있습니다. 22.x, 24.x, 26.x가 대상이며, CVE-2026-105483은 24.x와 26.x입니다.
휴비즈ICT 홈페이지(hubizict.com)는 Java 기반이라 이 Node.js 런타임 취약점의 직접 대상이 아닙니다. Node.js로 운영 중인 API, 관리 화면, 배치, 컨테이너를 가진 조직은 아래 순서대로 조치하시기 바랍니다.
대응
- 서버와 솔루션에 들어 있는 Node.js 버전을 확인합니다. Node.js는 다른 제품 안에 포함되어 있어 겉으로 보이지 않을 수 있습니다.
- 지원 버전은 즉시 패치하고 프로세스를 다시 시작합니다. 수정 버전은 22.23.4, 24.22.1, 26.12.1 이상입니다. 컨테이너는 이미지를 다시 만들어 배포합니다.
- Node.js 20.x 이하와 23.x, 25.x는 이번 보안 업데이트가 제공되지 않습니다. 지원 중인 22, 24, 26 라인으로 올립니다.
- 인터넷에 열려 있는 시스템부터 적용합니다. 당장 패치할 수 없으면 외부에서 들어온 Brotli 압축 해제를 잠시 멈추고, 패치 후 다시 켭니다.
- 웹 방화벽은 패치 전까지의 임시 보완입니다. 설정 변경만으로는 안전해지지 않습니다.
참고
버전 확인과 패치 적용이 필요하시면 휴비즈ICT(054-256-7000, hubizict@hubizict.com)로 문의해 주세요.