Google Brotli 치명적 결함, Node.js를 넘어 Python·HTTP 전반으로 번지다
Node2Shell evolves to HTTP2Shell, blast radius affects many HTTP libs and apps

Google이 개발한 압축 라이브러리 Brotli에서 발견된 CVE-2026-111497 취약점이 Node.js의 Node2Shell을 넘어 Python, C++, Bun, Envoy, Istio 등 HTTP를 사용하는 여러 언어와 애플리케이션으로 확산되고 있다. Brotli 1.2.0 이하 버전에서 발생하는 out-of-bounds write로, 공격자가 조작한 압축 스트림을 보내 메모리 유출이나 원격 코드 실행을 유발할 수 있다. CVSS 9.2의 심각한 결함으로, OpenAI가 지난 2월 발견했으나 보안 문제로 인식되지 않아 각 프로젝트가 개별 패치를 내놓아야 하는 상황이다. Brotli 1.2.1 이상으로 업그레이드하고 컨테이너 이미지를 재빌드하는 것이 권장된다.
공격자는 그 손상을 이용해 자신의 코드와 같이 실행되는 내용을 제어할 수 있다.
HN 토론
128- netsharc
글쎄, HTTP2Shell이라는 이름을 고른 사람은 인공 지능이든 진짜 지능이든 전혀 쓰지 않은 게 분명하다.
너무 의미 없고, 광범위하고, 실제 문제를 설명하지도 못한다. 아니, 아마 뒤에 아무것도 없는 HTTP 서버에는 영향을 주지 않을 텐데, 왜 HTTP가 욕을 먹는 거지?
차라리 Exploit Pro Max라고 부르지 그랬어...
- pimterry
같은 취약점에 대해 Broccoli2Shell이라는 이름과 사이트를 훨씬 선호한다: https://broccoli2shell.com/. 우선, 수동으로 Brotli 디코딩을 하는 경우 HTTP 없이도 이걸 맞을 수 있다고 확신한다. HTTP는 그냥 가장 흔하게 나오는 경우일 뿐이다.
- Rapzid
> 인증 없이 원격 코드 실행이 가능하며 양방향으로 작동한다고 보고했지만
> 당시에는 보안 문제로 인식되지 않았고 지금까지 수정이 포함된 릴리스가 나오지 않았다
나는 항상 위험한 RCE 버그와 무해한 RCE 버그를 헷갈린다.
2월에 어떻게 보고되고 수정되었는데 아무도 중요성을 인식하지 못했는지 궁금하다. AI 자동화에 아무도 운전대를 잡지 않은 사례인가?
- nairboon
Brotli2Shell이 이 문제에 더 적절한 이름인 것 같다.
- bawolff
나한테 놀라운 부분은, 이 기능이 얼마나 생소한지를 생각하면, 요청 본문(응답뿐만 아니라)의 brotli 압축을 구현한 곳이 얼마나 많은지다.
어쨌든 이런 선정적인 과장은 슬슬 짜증나기 시작한다. 패치하고 넘어가자.
수정: 사실, 이 모든 선정적인 과장 속에서 기사만으로는 이 중 얼마나 많은 곳이 일반적인 설정에서 brotli로 압축된 요청 본문을 실제로 지원하는지, 아니면 brotli의 다른 용도(나쁘긴 하지만 훨씬 덜 치명적)인지 구분하기 어렵다.
- cowsandmilk
기사에서는 OpenAI가 2월에 이걸 발견했다고 주장하지만, 그건 맞지 않는 것 같다. 내 생각에 Google이 2월에 Brotli 소스 코드를 변경해 문제를 수정했지만, 그것이 보안 문제인지 인식하지 못해서 릴리스를 내지 않은 것 같다.
- flyingjoe
몇 달 전만 해도 모두가 패키지 업그레이드에 쿨다운을 사용하라고 조언했다. 이제는 보안 사고가 즉시 악용될 것이기 때문에 우리는 계속 그 조언을 무시하고 있다.
앞으로는 그냥 이렇게 될 거라고 생각한다.
- tetha
적어도 다른 모든 것에 대한 거대한 패치 작업이 진행되는 동안 또는 그 전에 이 사실을 알게 되었다. 그냥 더미 위에 올려두자.
이번 주에 누가 하드 모드를 켠 거지?