Codex가 찾은 Node.js 결함, 하루 만에 공격 코드 나왔다
OpenAI Codex Security 팀이 신고한 Node.js 브로틀리 디코더 결함(CVE-2026-111497)이 10월 21일 패치된 지 하루 만에, 보안업체 임퍼바가 'Node2Shell'이라는 이름으로 공식 Node.js 24.22.0 arm64 이미지에서 원격 코드 실행을 시연했다.
OpenAI의 Codex Security 팀이 찾아 신고한 Node.js 브로틀리(Brotli) 압축 해제 결함에 공개 공격 코드가 나왔다. Node.js가 10월 21일 이 결함(CVE-2026-111497)을 고친 지 하루 만에 보안업체 임퍼바(Imperva)가 공식 빌드에서 원격 코드 실행을 시연했다고 해외 매체 더해커뉴스(The Hacker News)가 전했다.

핵심 정리
- Node.js 22.23.4·24.22.1·26.12.1이 원격 코드 실행으로 이어질 수 있는 브로틀리 디코더 결함을 고쳤다.
- 임퍼바는 공식 Node.js 24.22.0 리눅스 arm64 이미지에서 코드를 실행했지만 매번 성공하지는 않았다.
- 실제 악용은 보고되지 않았으나 Node.js 20.x 이하는 패치가 없고, 번(Bun)도 아직 수정 전이다.
Node.js 브로틀리 취약점, 무엇이 문제인가
Node.js 보안 공지에 따르면 브로틀리 데이터 안의 잘못된 블록 전환을 '영구적인 형식 오류'가 아니라 '입력이 더 필요한 일시 상태'로 처리한 것이 원인이다. 그 결과 디코더가 8바이트 내부 버퍼에 입력을 계속 덧붙였다.
공격자가 node:zlib으로 압축을 푸는 앱에 조작한 데이터를 넣으면 메모리를 오염시켜 중단·정보 노출·원격 코드 실행까지 일으킬 수 있다. Node.js 자체 등급은 '높음'이며, 보안업체 사이코드(Cycode) 등에 따르면 CVE 발급기관인 구글은 CVSS 4.0 기준 9.2점을 매겼다.
공지는 신고자로 'OpenAI Codex Security'의 카이 트란(Khai Tran)과 실비 메이어(Sylvie Mayer)를, 수정자로 Node.js 메인테이너 mcollina와 aduh95를 적었다. 이번 업데이트의 CVE는 10건, 이 중 4건이 '높음'이다.
패치 하루 만에 나온 'Node2Shell' 공격
더해커뉴스에 따르면 10월 22일 처음 공개된 개념증명(PoC) 코드는 일부러 보안을 약하게 만든 시험 빌드에서만 코드 실행에 성공했다.
같은 날 공격에 'Node2Shell'이라는 이름을 붙인 임퍼바 레드팀은 한발 더 나갔다. 익스프레스 5.0.0~5.3.0과 body-parser 2.0.0~2.3.0 환경에서 들어오는 요청 본문과 fetch()로 받은 브로틀리 압축 응답 양쪽 경로로 코드 실행을 재현했다. 다른 아키텍처와 22.x·26.x는 시험하지 않았고, 패치된 24.22.1은 같은 입력을 거부했다.
패치가 필요한 곳은 Node.js만이 아니다
구글의 브로틀리 프로젝트도 10월 21일 이 CVE를 명시한 v1.2.1·v1.1.1·v1.0.10을 내놨다. 10월 21일 올라온 깃허브 이슈는 "모든 번 버전이 영향을 받는다"고 지적했고, 수정 풀 리퀘스트는 대기 중이다.
지원이 끝난 Node.js 20.x 이하에는 패치가 나오지 않는다. 연장 지원 업체 히어로데브스(HeroDevs)는 20.20.2·18.20.8에서도 취약한 디코더를 확인했다. 퀄리스(Qualys)는 업그레이드 뒤 컨테이너 이미지를 다시 빌드하고 서비스를 재시작하라고 권했다.
AI가 찾은 버그, 공격으로 바뀌는 속도
AI가 찾은 버그가 패치 공개 직후 곧바로 공격 코드로 바뀐 사례다. 패치 공개와 현장 적용 사이의 간격이 위험 구간이 된다.
전망
임퍼바와 버셀(Vercel)은 방화벽 규칙을 추가했다. 버셀 규칙은 들어오는 요청만 걸러 내며, 앱이 외부 서버에서 받아 오는 브로틀리 응답은 막지 못한다. 임퍼바는 "업데이트만이 결함을 없앤다"고 했다. 10월 23일 기준 미국 CISA의 '알려진 악용 취약점' 목록에는 오르지 않았다.
자주 묻는 질문
CVE-2026-111497을 고친 Node.js 버전은?
22.23.4, 24.22.1, 26.12.1과 각 계열의 이후 버전이다.
Node2Shell이 실제 공격에 쓰이고 있나?
10월 23일 기준 보고된 실제 악용은 없다.
구버전 Node.js를 쓰면 어떻게 해야 하나?
20.x 이하는 패치가 없어 지원 중인 버전으로 옮겨야 한다.
참고 자료
- Node.js — Wednesday, October 21, 2026 Security Releases — Node.js(2026년 10월 21일)
- Researchers Demonstrate Node2Shell RCE Exploit on Node.js Build Using Crafted Brotli Data — The Hacker News(2026년 10월 23일)
- Releases · google/brotli — GitHub
- Brotli decoder is missing the CVE-2026-111497 fix (google/brotli@0ed4268a) — GitHub, oven-sh/bun(2026년 10월 21일)
- Node.js Patches Brotli Remote Code Execution Flaw: Find Vulnerable Runtimes Before Attackers Do — Qualys(2026년 10월 23일)
- node2shell (CVE-2026-111497): What to Patch in Node.js — Cycode(2026년 10월 23일)
- CVE-2026-111497 (Node2Shell): Node.js Brotli RCE Fix — HeroDevs(2026년 10월 23일)
댓글 0
현재 댓글 작성이 비활성화되어 있습니다.