핵심 요약
- 구글의 브로틀리(Brotli) 압축 라이브러리에서 원격 코드 실행이 가능한 치명적 취약점(CVE-2026-111497)이 터졌습니다.
- Node.js에서 시작해 파이썬과 각종 HTTP 라이브러리로 확산됐으며, 클라이언트와 서버 양방향 탈취가 가능해 심각도가 매우 높습니다.
- OpenAI가 2월에 발견해 소스코드는 고쳤으나 보안 패치로 정식 릴리스되지 않았던 것으로 드러나 각 언어 및 런타임별 긴급 업데이트가 진행 중입니다.
요약 구글이 개발한 널리 쓰이는 압축 라이브러리 브로틀리(Brotli) 디코더에서 심각한 메모리 손상 취약점(CVE-2026-111497)이 발견되며 전 세계 개발 생태계에 비상이 걸렸습니다. 10월 21일 Node.js에서 조작된 압축 스트림을 풀 때 메모리 유출이나 임의 코드 실행이 가능한 'Node2Shell' 취약점이 처음 공개된 데 이어, 다음 날 파이썬 패키지까지 영향을 받는 것으로 확인되더니 결국 HTTP를 사용하는 거의 모든 주요 언어와 서비스 애플리케이션으로 번지며 'HTTP2Shell'로 진화했습니다.
이번 취약점은 브로틀리 디코더 버전 1.0.3부터 1.2.0까지 전 플랫폼에 걸쳐 발생하며, CVSS 점수는 9.2(Critical)에 달합니다. 공격자가 악의적으로 조작된 브로틀리 압축 데이터를 전송하면 디코더가 이를 거부하지 않고 받아들여 버퍼 오버플로우를 일으키고 메모리를 오염시킵니다. 특히 양방향 원격 코드 실행(RCE)이 가능해, 악성 클라이언트가 패치되지 않은 서버를 장악할 수 있을 뿐만 아니라 악성 서버가 압축 응답을 수락하는 취약한 클라이언트를 역으로 탈취할 수도 있습니다.
흥미로운 점은 OpenAI가 이미 지난 2월 이 취약점을 발견해 보고했었다는 사실입니다. 당시 브로틀리 소스코드 레벨에서 근본 원인에 대한 수정이 이뤄졌으나, 보안 취약점으로 공식 인지되지 못해 배포 릴리스에 포함되지 않았던 것으로 밝혀졌습니다. 이로 인해 브로틀리를 번들로 사용하는 프로젝트들이 제각기 보안 패치를 배포해야 하는 상황이 되었습니다.
현재 libbrotli, Python, C++, Node.js, Bun, Envoy 등 주요 프로젝트에서 긴급 패치를 공개하고 있으며, 패치가 나오지 않은 환경에서는 브로틀리 디코딩 기능을 비활성화할 것이 권장되고 있습니다. 한편 아파치(Apache)의 기본 mod_brotli나 Nginx의 경우 기본적으로 브로틀리 디코딩을 수행하지 않아 이번 위협에서 비교적 자유로운 것으로 알려졌습니다.
Sponsored · 광고