구글이 개발한 데이터 압축 라이브러리인 Brotli에서 심각한 보안 취약점이 발견되었으며, 연구원들은 이를 "Node2Shell"(CVE-2026-111497로 등록됨)이라고 명명했습니다. 이 취약점으로 인해 원격 코드 실행(RCE) 위험을 방지하기 위해 Microsoft, Node.js 프로젝트 및 Python 패키지 개발자들이 보안 업데이트를 실시하는 기술적 비상 상황이 발생했습니다.
문제는 Brotli 1.0.3에서 1.2.0 버전 사이의 "경계 외 쓰기(out-of-bounds write)" 오류에 있습니다. 구글은 이 취약점에 대해 CVSS v4 기준 9.2의 위험 점수를 부여하여 심각한 취약점 범주로 분류했습니다. 이 결함을 악용하면 메모리 오염(memory corruption)이 발생하여 프로세스 충돌이나 메모리 내용 유출을 초래할 수 있으며, 최악의 경우 권한이 없는 공격자가 임의의 코드를 실행할 수 있게 됩니다.
이 위협이 기술적으로 위험한 이유는 무엇인가요?
Brotli는 웹을 통해 전송되는 데이터를 압축하는 데 매우 흔히 사용되는 라이브러리이며, 그 "디코더(decoder)"는 수많은 애플리케이션과 소프트웨어 라이브러리에 통합되어 있다는 점에서 중요합니다. 압축된 HTTP 요청, 외부 서버로부터 받은 응답 또는 압축 파일과 같이 신뢰할 수 없는 소스에서 오는 압축 데이터를 처리하는 모든 애플리케이션은 해당 버전을 사용하는 경우 해킹에 노출될 수 있습니다.
영향 범위 및 사용 가능한 수정 사항
시스템 안전을 보장하기 위해 여러 핵심 기술 분야에서 업데이트가 이루어졌습니다:
- Microsoft: .NET 환경(버전 8.0.33, 9.0.22, 10.0.14), Visual Studio(2019, 2022, 2026), 그리고 PowerShell(버전 7.4, 7.5, 7.6)에 대한 업데이트를 출시했습니다.
- Node.js 및 Python: Node.js 프로젝트와 Brotli 및 brotlicffi와 같은 유명 Python 패키지에 대한 수정 사항이 출시되었습니다.
- 기타 도구: 업데이트에는 Bun, Envoy, Istio도 포함되었습니다.
개발자와 관리자는 무엇을 해야 합니까?
전문가들은 단순히 라이브러리를 업데이트하는 것만으로는 불충분할 수 있다고 강조했습니다. 이미 실행 중인 프로세스는 메모리 내의 감염된 코드를 계속 사용하기 때문입니다. 따라서 다음과 같은 조치가 필요합니다:
- 라이브러리 즉시 업데이트: Brotli 1.0.10, 1.1.1, 1.2.1 이상 버전으로 전환하십시오.
- 서비스 재시작: 새로운 코드를 로드하고 메모리를 정리하기 위해 영향을 받는 모든 서비스와 애플리케이션을 재시작해야 합니다.
- 컨테이너 재빌드: 클라우드 컴퓨팅 환경에서는 수정 사항이 포함되도록 업데이트된 베이스 이미지(Base Images)를 기반으로 컨테이너 이미지(Container Images)를 재빌드해야 합니다.