구글 Brotli 압축 라이브러리의 심각한 보안 결함, HTTP 생태계 전역 영향
원제 Node2Shell evolves to HTTP2Shell, blast radius affects many HTTP libs and apps
116 포인트댓글 61

Key Point
HTTP 압축의 표준 라이브러리 취약점이 Node.js·Python·여러 언어 전역에 영향을 미치며, 자동 의존성 로드로 인해 직접 설치하지 않은 애플리케이션도 노출될 수 있어 긴급 대응이 필요하다.
핵심 요약
- 구글의 Brotli 압축 라이브러리 1.0.3~1.2.0 버전에서 발견된 CVE-2026-111497은 out-of-bounds write 취약점으로, 공격자가 제작한 Brotli 데이터를 받는 모든 Node.js·Python·C++ 프로세스에서 메모리 누출 또는 원격 코드 실행을 가능하게 한다.
- CVSS 9.2(심각)로 평가되며, 2월 OpenAI에서 발견했으나 당시엔 보안 문제로 인식되지 않았다.
- Node.js 22.23.4·24.22.1·26.12.1, Python Brotli 1.2.1·brotlicffi 1.2.1.0, Bun 1.4.4, Envoy 1.40.0 등으로 패치 가능하다.
- Python에서는 requests·httpx·aiohttp·urllib3 같은 HTTP 클라이언트가 Brotli 또는 brotlicffi가 설치되면 자동으로 로드하고 Brotli 응답을 디코딩하므로, 코드에서 직접 import하지 않아도 영향받을 수 있다.
- 패치 전까지 임시 조치로는 Python에서 Brotli 패키지 제거, 리버스 프록시에서 br 인코딩 거부, Accept-Encoding에서 br 제거 등이 가능하다.
- 취약점은 DecodeBlockTypeAndLength() 함수에서 반환값을 제대로 구분하지 않아 버퍼 오버플로우를 일으키는데, 구글 Brotli 커밋 0ed4268에서 오류 코드 반환으로 수정했다.
- pip-audit·Dependabot·Safety는 10월 23일 현재 해당 CVE를 PyPI 패키지와 매핑하지 않았으므로 자동 감지가 안 되며, 수동으로 pip show 명령과 의존성 추적으로 확인해야 한다.
- Apache mod_brotli는 기본값에서 Brotli를 디코딩하지 않으므로 영향받지 않는다.