← CVE 대응 목록
Critical 2026-10-26 작성

node2shell - CVE-2026-111497

node2shell은 Node.js에 내장된 Brotli 압축 해제 디코더에서 발생한 원격 코드 실행(RCE) 취약점(CVE-2026-111497)입니다.
외부의 공격자가 로그인 없이 조작된 Brotli 압축 데이터만으로 Node.js 프로세스의 메모리를 오염시키고, 조건이 맞으면 임의의 코드를 실행할 수 있습니다.

ZIEN VIEW 역할을 고르면 먼저 할 일을 보여드립니다
보안담당자

Node.js가 돌아가는 서비스부터 모두 찾으십시오. 결함은 npm 패키지가 아니라 Node.js 런타임에 포함된 Brotli 디코더에 있습니다. 패키지 목록(package.json)만 봐서는 드러나지 않으므로 서버, 컨테이너 이미지, 빌드 서버마다 실제 런타임 버전(node -v)을 확인해야 합니다.

우선순위는 외부 데이터가 Brotli로 풀리는 곳입니다. Content-Encoding: br 요청 본문을 해제하는 Express 5·body-parser 2 서비스, 공격자가 응답을 조작할 수 있는 외부 주소를 fetch()로 받아오는 서비스가 1순위입니다.

CVE 상세

CVE-2026-111497

CRITICAL CVSS · Google

Node.js에 내장된 Brotli 디코더는 잘못된 블록 전환(block switch)을 영구적인 형식 오류가 아니라 입력이 더 필요한 일시적 상태로 처리했습니다. 그 결과 스트리밍 디코더가 8바이트짜리 내부 버퍼에 입력 바이트를 계속 덧붙여 버퍼 끝을 넘어 씁니다. 공격자가 node:zlib으로 해제되는 Brotli 데이터를 보낼 수 있으면 프로세스 메모리를 오염시켜 프로세스 종료, 메모리 노출, 원격코드실행(RCE)으로 이어질 수 있습니다.

위 설명은 Node.js 보안 공지 기준입니다.

CVSS 9.2CRITICAL
v4.0 · Google | v3.1 NVD 분석 전
CISA KEV 미등재
악용 사실 확인 전 · 등재 시 패치 기한 부과
EPSS 32.8%
상위 1.7% · 2026-10-25 산출

KEV · EPSS는 2026-10-26 13:19 KST 조회 기준이며 수시로 바뀝니다.

CWE 787 · 252
공개 2026-10-22
출처 Google (CNA)
상태 Awaiting Analysis
Brotli와 node2shell, 쉽게 이해하기
1

Brotli란?

Google이 만든 압축 방식입니다. gzip처럼 웹에서 데이터를 주고받을 때 크기를 줄이는 데 씁니다. Node.js는 이 압축을 푸는 코드(디코더)를 런타임 안에 직접 넣어 두었습니다.

2

무엇이 잘못됐나?

잘못된 데이터를 만나면 멈춰야 하는데, 디코더가 이를 “데이터가 아직 덜 왔다”로 착각했습니다. 그래서 8바이트짜리 작은 칸에 데이터를 계속 밀어 넣어 칸 밖까지 넘치게 씁니다. 작은 상자에 물건을 계속 밀어 넣어 옆 칸까지 쏟아지는 것과 같습니다.

3

왜 코드 실행까지 가나?

넘친 데이터가 옆 메모리를 덮어쓰면 프로세스가 죽거나, 메모리 내용이 새어 나가거나, 공격자가 심은 코드가 실행될 수 있습니다. 로그인은 필요 없습니다. 다만 앱이 그 데이터를 실제로 풀어야 공격이 성립합니다. Express 5·body-parser 2가 요청 본문을 풀 때, fetch()로 공격자 서버의 응답을 받을 때가 그 예입니다.

영향 버전 및 수정 버전

Node.js 런타임에 포함된 코드라서 npm 패키지 업데이트로는 고쳐지지 않습니다. 런타임 자체를 올려야 합니다.

릴리스 라인 영향받는 범위 수정 버전
26.x < 26.12.1 26.12.1
24.x < 24.22.1 24.22.1
22.x < 22.23.4 22.23.4
25.x · 23.x · 20.x 이하 전 버전 (지원 종료) 수정 없음 · 지원 버전으로 이전

원문 · 참고 자료

NVD · CVE-2026-111497 nvd.nist.gov Node.js · 2026년 10월 보안 릴리스 Vendor Advisory nodejs.org Imperva Red Team · node2shell 분석 Third Party Advisory imperva.com broccoli2shell.com · 공개 사이트 취약점 요약 · 별칭 정리 broccoli2shell.com
Newsletter

다음 긴급 CVE는 메일로 먼저

수정 버전과 영향 자산 판단 기준을 한 통으로 보냅니다.

(주)지엔 · 대표 조영민 · 서울특별시 금천구 서부샛길 606 대성디폴리스 A동 1606, 1607호
070-4571-9854 · support@zi-en.io · zi-en.io
이용 책임 — 이 사이트가 제공하는 정보는 이용자가 정당한 점검 권한을 가진 자산에 한해 보안 점검 목적으로만 제공됩니다. 권한 없는 대상에 대한 접근·점검·공격 등 불법적인 이용과 그로 인한 모든 결과에 대한 책임은 이용자 본인에게 있으며, (주)지엔은 어떠한 책임도 지지 않습니다.
ⓒ 2026 ZIEN, Inc. All rights reserved. 개인정보처리방침 · 이용약관