마이크로소프트, 닷넷 버퍼 오버플로 결함을 일요일 긴급 패치…PoC는 이미 공개됐다
선호 출처로 추가
선호 출처로 추가하면 Google 주요 뉴스에 위키트리 기사가 더 자주 표시됩니다.
마이크로소프트,.NET 8·9·10·11 RC3 긴급 업데이트 4종 배포
Brotli 버퍼 오버플로 CVSS 9.2, 10월 13일 패치 미흡분도 재수정

마이크로소프트가 닷넷(.NET) 개발 플랫폼의 긴급 보안 업데이트를 정기 일정 밖에서 배포했다. 구글이 만든 Brotli 압축 해제 알고리즘에서 발견된 버퍼 오버플로(메모리 경계를 넘어 데이터를 쓰는 오류) 취약점 CVE-2026-111497이 대상이다. 마이크로소프트는 10월 25일(현지시각) 일요일에 .NET 8·9·10과 .NET 11 릴리스 후보(RC) 3용 업데이트를 내놓고 “가능한 한 빨리 업데이트하라”고 권고했다.
Imperva 레드팀이 찾아낸 결함, 개념증명 코드는 이미 공개
블리핑컴퓨터(BleepingComputer)에 따르면 이 결함은 Imperva 레드팀이 발견했다. Brotli 디코더(압축된 데이터를 원래대로 풀어 주는 모듈)에서 경계 밖 쓰기(out-of-bounds write)가 일어나는 것이 원인이다. 이 취약점은 Broccoli2Shell이라는 이름으로 불리며 Node2Shell, HTTP2Shell이라는 별칭으로도 추적된다.
마이크로소프트는 취약점 설명에서 인증받지 않은 공격자가 프로세스 메모리를 읽거나 손상시킬 수 있다고 밝혔다. 그 결과 정보 노출, 서비스 거부(DoS), 권한 상승으로 이어질 수 있다. 야후 테크에 실린 포브스 기사에 따르면 공식 CVE 데이터베이스 항목에는 조작된 Brotli 압축 스트림을 이용해 임의 코드를 실행할 가능성도 적혀 있다. 블리핑컴퓨터는 취약한 Brotli 바이너리나 라이브러리를 쓰는 기기에서 일부 경우 원격 코드 실행까지 가능하다고 전했다.
심각도는 최고 수준이다. 인포시큐리티 매거진(Infosecurity Magazine)은 이 결함의 CVSS(공통 취약점 평가 체계) 점수가 9.2라고 보도했다. 마이크로소프트 보안대응센터는 취약점이 이미 공개됐고 자체 분석상 심각 등급이며 악용 증거는 아직 없다고 확인했다. 다만 악용 가능성 평가 항목에서는 “more likely(가능성 높음)”로 분류했다고 포브스 기사는 전했다.
블리핑컴퓨터는 Broccoli2Shell의 PoC(개념증명) 공격 코드가 이미 깃허브에 올라와 있다고 밝혔다. 실제 공격에 악용됐다는 보고는 아직 나오지 않았다.

기본 설정에서는 꺼져 있지만 켠 앱은 위험하다
영향을 받는 조건은 Brotli 압축 데이터를 처리하는 경로를 쓰는 경우다. 마이크로소프트는 ASP.NET Core 요청 압축 해제, HttpClient 자동 응답 압축 해제, System.IO.Compression의 Brotli API 중 하나로 데이터를 처리하는 애플리케이션이 영향받을 수 있다고 설명했다. 요청 압축 해제와 자동 응답 압축 해제는 기본값으로 켜져 있지 않다. 개발자가 직접 옵트인(선택 활성화)하거나 Brotli 해제 API를 직접 호출해야 한다.
블리핑컴퓨터는 이 점을 들어 기본 설정이 아닌 구성의 .NET 환경에서 패치되지 않은 시스템이라면 공격자가 원격으로 권한을 높일 수 있다고 설명했다. .NET Framework는 영향을 받지 않는다. 인포시큐리티 매거진은 CVE-2026-111497이 모든 운영체제의 .NET 8·9·10·11에 영향을 준다고 전했다.
시스템 라이브러리만 갱신해서는 충분하지 않을 수 있다는 경고도 있다. 블리핑컴퓨터에 따르면 이 결함을 추적하는 전용 온라인 포털은 시스템의 Brotli 라이브러리를 업데이트해도 자체 사본을 내장한 앱의 위험은 해소되지 않는다고 경고했다. 인포시큐리티 매거진은 구글 Brotli 1.0.3부터 1.2.0 버전 사용자도 Brotli 라이브러리나 바이너리를 최신 버전으로 갱신해야 한다고 전했다.
신규 취약점 2건에 재수정 2건…10월 13일 패치의 빈틈
이번 긴급 업데이트에는 Brotli 결함 외에도 CVE-2026-114148이 포함됐다. 리눅스용 .NET 타르볼(tarball·압축 배포 묶음)에 들어 있는 안전하지 않은 소유권 메타데이터가 원인이다. 마이크로소프트는 로컬 공격자가 파일을 수정하고 권한을 높일 수 있다고 설명했다.
범위는 버전별로 나뉜다. .NET 10과 .NET 11에서는 소스 빌드 타르볼만 영향을 받는다. .NET 8과 .NET 9에서는 ASP.NET Core 타르볼로 받은 배포판도 해당하며 보도에서 직접 .NET을 빌드하지 않는 사용자도 포함된다. 인포시큐리티 매거진은 이 결함이 .NET 7~11에 걸쳐 있다고 적었으나 마이크로소프트 개발자 블로그는 .NET 8·9·10·11용 수정을 안내했다. 인포시큐리티 매거진에 따르면 이 취약점은 작성 시점에 CVSS 점수가 매겨지지 않았고 CVE 번호 부여 기관이 번호만 예약한 상태였다.
마이크로소프트는 앞선 정기 업데이트에서 완전히 막지 못한 결함 2건도 이번에 다시 고쳤다. 10월 13일 릴리스에서 불완전하게 수정된 CVE-2026-70197(SocketAsyncEventArgs 메모리 손상)은 .NET 8·9·10·11이 대상이다. CVE-2026-102870(Blazor WebAssembly 디버거)은 .NET 10과 11이 대상이다. 인포시큐리티 매거진은 앞의 것을 메모리 손상 결함, 뒤의 것을 코드 주입 취약점으로 분류했다.
런타임 설치만으로는 끝나지 않는다
업데이트는 .NET 버전별로 하나씩, 모두 4개가 나왔다. 베타뉴스는 자신이 쓰는 .NET 버전에 맞는 파일을 받아야 한다고 짚었다. .NET 11 RC2 사용자는 RC3로 올려야 수정이 적용된다.
적용 방식은 배포 형태에 따라 다르다. 마이크로소프트 안내에 따르면 프레임워크 종속 애플리케이션은 대상 버전의 업데이트된 런타임을 설치한 뒤 앱을 재시작하면 된다. 자체 포함 애플리케이션은 업데이트된 런타임으로 다시 빌드해 재배포해야 한다. 호스트에 새 런타임을 깔아도 앱에 내장된 런타임은 바뀌지 않기 때문이다. 컨테이너는 업데이트된 .NET 컨테이너 이미지로 재빌드하고 재배포한다.
소스 빌드 사용자는 타르볼 소유권 수정이 반영된 업데이트 아티팩트를 받아 패키지를 다시 빌드해야 한다. .NET 8·9의 ASP.NET Core 타르볼 사용자는 갱신된 ASP.NET Core 런타임 타르볼로 설치를 업데이트한다. 보도에서 .NET을 빌드하지 않아도 마찬가지다. 설치된 런타임은 dotnet --list-runtimes 명령으로 확인할 수 있다. 자체 포함 앱과 컨테이너 배포는 런타임을 따로 품고 있어 별도로 점검해야 한다.
당장 패치하기 어려운 조직을 위한 임시 대책도 나왔다. 블리핑컴퓨터에 따르면 프록시나 방화벽에서 Brotli로 압축된 수신 요청을 차단하거나 패치 전까지 Brotli 디코딩을 꺼 두면 된다. 업데이트 뒤 문제가 생기면 .NET 릴리스 피드백 이슈에 신고하라고 마이크로소프트는 안내했다.