브로틀리 디코더 RCE 취약점 공개, 실제 악용 확인
1. 개요
압축 라이브러리 하나가 거의 모든 런타임을 흔드는 상황이 나왔습니다. 미국 CISA는 10월 27일 구글의 오픈소스 압축 라이브러리 브로틀리(Brotli) 디코더의 취약점 CVE-2026-111497을 실제 악용이 확인된 취약점 목록(KEV)에 올렸습니다. 디코더가 신뢰할 수 없는 브로틀리 압축 데이터를 풀 때 버퍼 경계 밖으로 쓰기가 발생하는 out-of-bounds write 결함으로, 조작된 압축 스트림을 던지면 메모리가 망가지면서 정보 유출이나 서비스 중단, 원격 코드 실행까지 이어질 수 있습니다. 구글은 CVSS v4.0 기준 9.2 (심각)로 매겼습니다.
영향 받는 브로틀리 버전은 1.0.3부터 1.0.10 미만, 1.1.0부터 1.1.1 미만, 1.2.0부터 1.2.1 미만입니다. 수정본은 1.0.10, 1.1.1, 1.2.1입니다.
2. 영향 범위
문제는 브로틀리가 워낙 여러 곳에 내장돼 있다는 점입니다. 레드햇 권고문은 Node.js(zlib 모듈에 번들), 파이썬의 brotli 계열 패키지, 파이어폭스와 썬더버드 내장본, br 콘텐츠 인코딩을 지원하는 웹 서버, JBoss Core Services, RHEL 7/8/9/10을 영향 대상으로 명시했습니다. 외부 분석에서는 Bun, .NET, Envoy, Istio, brotli4j까지 영향 목록에 올라 있어, 라이브러리 한 줄 올리고 끝낼 문제가 아니라 번들된 각 구성 요소를 따로 확인해야 합니다. Node.js는 10월 21일 22.23.4, 24.22.1, 26.12.1을 수정본으로 공개했습니다.
3. 점검
운영 중인 서버에서 각 런타임 버전부터 확인합니다.
$ node -v
v24.22.0 # 24.22.1 미만이면 영향
$ rpm -q brotli libbrotli
brotli-1.0.9-1.el9.x86_64 # 1.0.10 미만이면 영향
$ python3 -c "import brotli; print(brotli.__version__)"br 응답 압축을 쓰는 Nginx, Apache HTTP Server 앞단이나 Envoy, Istio 사이드카도 빠뜨리지 말아야 합니다. 리버스 프록시가 외부에서 들어온 br 요청 본문을 그대로 디코딩한다면 공격 표면이 됩니다.
4. 해결
브로틀리를 1.0.10, 1.1.1, 1.2.1 중 자신의 메이저에 맞는 버전으로 올리고, Node.js는 22.23.4, 24.22.1, 26.12.1로 올립니다. 배포판 패키지는 yum update brotli 식으로 받되, 애플리케이션이 자체적으로 정적 링크한 브로틀리를 들고 있다면 OS 패키지만 갱신해서는 막히지 않으니 해당 런타임과 패키지를 각각 수정본으로 교체해야 합니다. CISA가 실제 악용 근거를 들어 등재한 사안인 만큼 외부에 노출된 디코딩 경로부터 우선 적용하는 편이 안전해 보입니다.
🔗 https://access.redhat.com/security/vulnerabilities/RHSB-2026-015
로그인 후 답글을 남길 수 있습니다.