ToolNavs 유용한 AI 도구 찾기
도구 제출 로그인
돌아가기 AI 정보
Brotli 디코더 취약점으로 원격 코드 실행 가능: OpenAI 레드팀이 발견, Node.js는 패치 완료

Brotli 디코더 취약점으로 원격 코드 실행 가능: OpenAI 레드팀이 발견, Node.js는 패치 완료

AI 정보 • Admin • • 20 회 조회

Brotli 디코더의 메모리 처리 결함으로 인해 공격자가 인증 없이 원격으로 코드를 실행할 수 있다. 2026년 10월 23일, OpenAI는 이 취약점을 자사의 Codex Security 팀이 레드팀 훈련 중에 찾아냈다고 공개했다. 그보다 앞선 10월 21일, Node.js 프로젝트는 이미 보안 업데이트를 배포했다. 수정 버전은 26.12.1, 24.22.1, 22.23.4로, 26.x, 24.x, 22.x 세 릴리스 라인이 대상이다.

취약점의 정체: '블록 전환' 오판

Node.js 보안 권고는 원인을 구체적으로 적고 있다. 디코더는 비정상적인 압축 데이터를 처리할 때 무효한 '블록 전환'을 영구적인 형식 오류가 아닌 '일시적으로 입력이 더 필요한 상태'로 잘못 판단했다. 그 결과 스트리밍 디코더는 8바이트에 불과한 내부 버퍼에 바이트를 계속 추가했고, 결국 버퍼 경계를 뚫고 쓰고 말았다.

애플리케이션에 Brotli 데이터를 전달할 수 있는 공격자는 프로세스 메모리를 손상시킬 수 있는 위치를 확보한다. 가벼우면 충돌, 심하면 메모리 유출, 최악의 경우 원격 코드 실행이다. 공격 경로는 양방향이다. 압축 데이터를 받는 서버는 탈취당할 수 있고, 압축을 켠 curl 같은 클라이언트 도구 역시 악성 서버를 만나면 같은 위험에 노출된다.

Node.js에서 Envoy까지: 영향 범위는 보이는 것보다 넓다

구글이 개발한 Brotli는 이미 인터넷 인프라의 '공기' 같은 존재다. Node.js, Bun, Envoy 모두 이 디코더를 내장하고 있다. 애플리케이션 자체는 압축 코드를 한 줄도 쓰지 않았더라도 의존성 트리 어딘가에 취약한 디코더가 숨어 있을 수 있다. 이런 '보이지 않는 의존성'이 바로 공급망 취약점이 까다로운 이유다.

8개월간 방치된 취약점

가장 시사하는 바가 큰 것은 이 취약점의 '내력'이다. OpenAI 공개에 따르면, 근본 원인은 이미 2026년 2월에 Brotli 상류 소스에 수정이 반영돼 있었다. 하지만 당시에는 아무도 보안 문제라고 인식하지 못했고, CVE 번호도 부여되지 않았으며 하류 업데이트도 추진되지 않았다. 실제로 악용 가능한 고위험 취약점이 8개월 동안 오픈소스 공급망에 '벌거벗은 채' 방치된 셈이다. 고칠 수 없어서가 아니라, 고쳐야 한다는 것을 아무도 알아보지 못한 것이다. OpenAI의 에이전트형 레드팀이 이를 발굴하고 나서야 Brotli에 CVE-2026-111497이 부여되고 새 버전이 나왔다. Node.js는 이번 배치의 최고 심각도를 '높음'으로 평가하고, 주요 비(非) EOL 릴리스 라인이 모두 영향을 받는다고 밝혔다.

대응: 먼저 업데이트, 다음은 의존성 점검

Node.js를 쓰는 팀은 각 릴리스 라인의 수정 버전(26.12.1 / 24.22.1 / 22.23.4)으로 올리자. Bun, Envoy 사용자는 하류 보안 업데이트가 전부 반영되기를 기다린다. 의존성 트리에서 Brotli 디코더를 품은 컴포넌트를 한 번 점검해 보는 것도 권장한다. 패치는 허술하게 하면 소용없다. 문을 반만 닫아서는 지킬 수 없다.

이 사건은 'AI 취약점 발굴'의 새로운 사례이기도 하다. 한 달도 채 되기 전에 AI는 PHP 코어에 10년 넘게 숨어 있던 원격 실행 진입점을 발굴해 냈다(관련 보도). OpenAI 자신도 레드팀 훈련 뒤 최전선 모델의 학습 환경을 인터넷에서 완전히 격리했다. AI는 '보조 스캐너'에서 제로데이를 실제로 발굴해 내는 주역으로 바뀌고 있다. 오픈소스 취약점을 찾는 Patch the Planet 같은 프로젝트는 앞으로 더 바빠질 것이다.

추천 도구

더보기