Out-of-band .NET patches landed Oct 25 for the Brotli CVE — fixed builds are 8.0.33 / 9.0.22 / 10.0.14, and PowerShell got fixes too
.NET, Brotli 취약점 긴급 패치 배포… 8.0.33·9.0.22·10.0.14로 업데이트
.NET 8·9·10과 .NET 11 RC3에 Brotli 압축 해제 취약점 등을 고친 긴급 보안 업데이트가 배포됐습니다. 자체 포함 앱은 런타임 설치만으로 패치되지 않아 다시 빌드하고 배포해야 합니다.
- 주제
에디터 노트
업데이트 우선순위는 .NET 버전보다 신뢰할 수 없는 Brotli 데이터가 디코더에 도달하는 경로가 있는지에 달렸습니다. Microsoft는 관련 압축 해제 기능이 기본값으로 꺼져 있다고 설명하며, 이를 켠 앱과 해당 데이터 처리 여부를 점검할 근거를 제공합니다. 댓글은 내부 전용 엔드포인트의 위험이 더 낮다는 의견과, 외부 URL이나 압축 업로드가 있으면 상황이 달라진다는 조건을 제시합니다. 이는 공식 안내의 영향 조건과 맞닿지만 내부 시스템 전반에 대한 보장은 아닙니다. 패치 지연을 두고 나온 설명은 댓글 작성자의 해석이며 공식 원문이 밝힌 배경은 아닙니다. 배포 방식에 따라 자체 포함 앱과 컨테이너는 재빌드가 필요하다는 점이 실제 적용 범위를 가릅니다.
AI 요약
Microsoft가 10월 25일 .NET 8, .NET 9, .NET 10과 .NET 11 Release Candidate 3용 긴급 보안 업데이트를 배포했습니다. 주요 수정 사항은 Brotli 압축 해제 과정의 메모리 취약점이며, Linux용 .NET tarball의 파일 소유권 문제와 앞서 배포한 두 취약점의 수정도 포함합니다.
수정된 취약점
CVE-2026-111497은 .NET의 Brotli 압축 해제 알고리즘에서 발생하는 버퍼 오버플로 취약점입니다. 공격자가 인증 없이 프로세스 메모리를 읽거나 손상할 수 있으며, 정보 노출과 서비스 거부, 권한 상승으로 이어질 수 있습니다. 영향 범위는 모든 플랫폼입니다. ASP.NET Core의 요청 압축 해제, HttpClient의 자동 응답 압축 해제, System.IO.Compression의 Brotli API로 압축 데이터를 처리하는 앱이 영향을 받을 수 있습니다. 요청 및 응답 자동 압축 해제 기능은 기본값으로 켜져 있지 않습니다. .NET Framework는 영향을 받지 않습니다.
CVE-2026-114148은 Linux용 .NET tarball의 안전하지 않은 소유권 메타데이터 문제입니다. 로컬 공격자가 파일을 수정해 권한을 높일 수 있습니다. .NET 10과 .NET 11에서는 소스 빌드용 tarball만 영향을 받습니다. .NET 8과 .NET 9에서는 소스 빌드 여부와 관계없이 ASP.NET Core tarball 배포본도 영향을 받습니다.
Microsoft는 10월 13일 배포본이 CVE-2026-70197(SocketAsyncEventArgs 메모리 손상)과 CVE-2026-102870(Blazor WebAssembly 디버거) 문제를 완전히 해결하지 못해 관련 권고를 다시 배포하고 이번 업데이트에 수정 사항을 넣었습니다. 전자는 .NET 8·9·10·11, 후자는 .NET 10·11에 해당합니다.
업데이트 버전과 적용 방법
.NET 8은 8.0.33, .NET 9는 9.0.22, .NET 10은 10.0.14로 업데이트합니다. .NET 11 사용자는 Release Candidate 3으로 올려야 하며 RC2 사용자도 RC3으로 업데이트해야 수정 사항을 받습니다.
프레임워크 종속 앱은 대상 .NET 버전의 새 런타임을 설치한 뒤 앱 프로세스를 재시작합니다. 자체 포함 앱은 런타임을 앱에 묶으므로 새 런타임을 호스트에 설치하는 것만으로는 패치되지 않습니다. 새 런타임으로 다시 빌드하고 배포해야 합니다. 컨테이너도 업데이트된 .NET 이미지를 사용해 다시 빌드하고 배포합니다. 소스 빌드 사용자는 업데이트된 소스 빌드 산출물을 받아 패키지를 다시 빌드해야 합니다. .NET 8·9의 ASP.NET Core tarball 사용자는 새 ASP.NET Core Runtime tarball로 설치를 갱신합니다. 설치된 런타임은 dotnet --list-runtimes 명령으로 확인할 수 있지만, 자체 포함 앱과 컨테이너는 별도로 점검해야 합니다.
Reddit 반응
- @shanewas726 — Microsoft가 10월 25일 토요일 CVE-2026-111497을 위한 .NET 업데이트를 긴급 배포했습니다. .NET 권고 점수는 8.1이고 MSRC는 .NET에서 심각 등급으로 평가했으며, Microsoft는 악용 가능성이 더 높다고 밝혔습니다. 25일 기준으로 악용 사례는 보고되지 않았습니다. 패치 버전은 8.0.33, 9.0.22, 10.0.14입니다. 이보다 낮은 버전은 여전히 취약하며 .NET Framework는 영향받지 않으므로 구형 Framework 서버는 이번 문제와 무관합니다. 같은 배포본은 Linux .NET tarball의 파일 소유권 문제도 고치고, 10월 13일 수정이 완전히 적용되지 않았던 CVE-2026-70197과 CVE-2026-102870도 다시 수정합니다. 서버별 긴급도는 신뢰할 수 없는 Brotli 데이터를 처리하는 앱이 있는지에 달렸습니다. ASP.NET Core 요청 압축 해제, HttpClient 자동 압축 해제, System.IO.Compression Brotli API가 관련 경로입니다. 두 자동 압축 해제 경로는 기본적으로 꺼져 있으므로 이런 기능을 켜지 않은 내부 앱은 업데이트 순서를 늦출 수 있고, 인터넷에 연결된 ASP.NET Core는 먼저 업데이트하는 편이 좋습니다. 자체 포함 앱은 런타임을 직접 포함하므로 공유 런타임 업데이트만으로 해결되지 않아 다시 빌드하고 배포해야 합니다. 프레임워크 종속 앱은 런타임 업데이트를 적용한 뒤 프로세스를 재시작해야 합니다. IIS에서는 런타임만이 아니라 ASP.NET Core Hosting Bundle도 업데이트해야 합니다. PowerShell도 대상에 포함되며 7.4.22, 7.5.13, 7.6.9에 수정 사항이 있습니다. Microsoft가 관리하는 Linux Azure App Service 기본 이미지는 플랫폼 업데이트 대상입니다. 10월 26일 기준 Latest 채널은 배포가 끝났고 Standard 채널은 진행 중이었습니다.
dotnet --list-runtimes는 각 머신의 런타임 확인에 쓸 수 있습니다.- @misplacedsagacity — 이렇게 패치가 늦게 나온 이유가 뭔가요? Node.js는 며칠 전에 배포했는데요.
- @yawkat — Brotli 수정은 몇 달 전에 일반 버그 수정으로 들어갔습니다. 수요일에 Node.js 관련 조율된(?) 공개가 이뤄지고 나서야 다른 소프트웨어도 영향을 받았다는 사실을 사람들이 알아챘습니다. 여러 프로젝트가 금요일이나 토요일에 패치했고 .NET도 그중 하나입니다.
- @BlockBannington — 공개 서비스가 아니라 내부 서비스와 엔드포인트만 관리합니다. 이 서브레딧에 있어도 되는지 모르겠네요. 엔드포인트도 업데이트를 서둘러야 하나요, 아니면 위험이 더 낮나요?
- @shanewas726 — 위험은 더 낮습니다. 신뢰할 수 없는 Brotli 데이터가 디코더에 도달해야 하는 버그라 내부 전용 엔드포인트에는 그런 데이터가 들어오지 않습니다. 그래도 외부 URL을 가져오거나 압축 파일 업로드를 받지 않는다면 평소 업데이트 주기에 맞춰 패치하면 됩니다.
원문: Microsoft .NET Blog / 번역·요약: Trawling