Azure App Service, Linux tarafındaki yerleşik (built-in).NET imajlarını .NET 8, 9 ve 10 için güncelledi. Güncellemenin arkasında,.NET ve ASP.NET Core’un kullandığı Brotli çözücüsünde bulunan bir güvenlik açığı var.
Yamanın kapsadığı açık: CVE-2026-111497
Resmi.NET sürüm notlarında tanımlanan CVE-2026-111497, Brotli çözücüsündeki bir sınır dışı yazma (out-of-bounds write) hatasına işaret ediyor. Kötü amaçlı hazırlanmış sıkıştırılmış veri işlendiğinde hizmet dışı bırakma (DoS), bilgi ifşası veya yetki yükseltme ortaya çıkabiliyor.
Uygulamanız Brotli açma işlemini şu yollardan biriyle kullanıyorsa etkilenme ihtimali var:
- ASP.NET Core istek açma (request decompression) özelliği,
HttpClientüzerindeki otomatik yanıt açma davranışı,System.IO.Compressioniçindeki Brotli API’leri.
İki sınırı da hesaba katmak gerekiyor. Otomatik istek ve yanıt açma davranışları varsayılan olarak etkin değil, ayrıca .NET Framework bu sorundan etkilenmiyor. Yani varsayılan yapılandırmayla çalışan her uygulama kendiliğinden risk altında değil; belirleyici olan, kodunuzun Brotli açma yollarından birini kullanıp kullanmadığı.
Yamalı runtime sürümleri
Azure App Service’in Linux imaj güncellemesi, 25 Ekim 2026 tarihinde yayımlanan band dışı (out-of-band).NET güvenlik sürümlerini temel alıyor. İlgili sürüm hatları ve yamalı runtime sürümleri şöyle:
| .NET sürüm hattı | Yamalı runtime sürümü |
|---|---|
| .NET 8 | 8.0.33 |
| .NET 9 | 9.0.22 |
| .NET 10 | 10.0.14 |
Bu sürümler Brotli düzeltmesinin yanında başka güvenlik düzeltmeleri de içeriyor. Kapsamın tamamı, hangi senaryoların etkilendiği ve platform runtime’ından bağımsız olarak ayrıca güncellenmesi gereken uygulama paketleri için resmi sürüm notlarına bakmanız gerekiyor.
Tabloyu doğru okumak gerekiyor. Bu liste yamalı sürümlerin hangileri olduğunu söyler, uygulamanızın halihazırda o sürümde çalıştığını kanıtlamaz. Doğrulamayı aşağıdaki adımlarla kendiniz yapmalısınız.
Dağıtım durumu ve Platform Release Channel
Güncellenmiş yerleşik Linux imajlarının dağıtımı hem Latest hem de Standard (varsayılan) Platform Release Channel üzerinde tamamlandı. Tüm dağıtım aşamaları ve bulutlar genelinde tamamlanma 27 Ekim 2026 tarihinde doğrulandı.
Dolayısıyla bu güncellemeyi almak için kanal değiştirmeniz gerekmiyor. Mevcut tercihinizde kalabilirsiniz, yapmanız gereken uygulamanızın çalışan runtime sürümünü doğrulamak.
Birkaç sınır daha var:
- Platform Release Channel değiştirmek, uygulamanızın yapılandırılmış.NET sürüm hattını değiştirmez.
- Destek ömrü sona ermiş (end-of-life) runtime’lar bu güncellemeleri almaz. Bu durumdaysanız desteklenen bir sürüm hattına geçip uygulamanızı test etmeniz gerekir.
- Bu duyuru App Service for Linux içindir. Platform Release Channel ayarları ve dağıtım durumu App Service for Windows için geçerli değildir.
Uygulama tarafında yapılması gerekenler
Platform imajının güncellenmesi her senaryoyu kapsamıyor. Şunlar sizin sorumluluğunuzda:
- Çalışan runtime’ı doğrulayın. Yapılandırılmış sürüm hattına veya kurulu SDK sürümüne değil, çalışan uygulama sürecine bakın.
- Uygulama tarafından yönetilen bağımlılıkları gözden geçirin. Paylaşılan runtime’dan bağımsız olarak güncellenmesi gereken paketler için resmi sürüm notlarını takip edin.
- Self-contained dağıtımları ve özel container’ları kendiniz güncelleyin. Platform imaj güncellemesi, uygulamanızla birlikte paketlenmiş ya da özel imajınızın içinde bulunan.NET runtime’ının yerine geçmez. İlgili yamalı runtime ile yeniden derleyip test edin ve yeniden dağıtın. Aynı kural diğer “kendi runtime’ını getir” (bring-your-own runtime) dağıtımları için de geçerli.
Runtime sürümünü nasıl doğrularsınız?
Çalışan uygulamanızda etkileşimli bir kabuk açmak için Azure CLI 2.90.0 veya üzeri ile az webapp exec (şu anda önizleme aşamasında) komutunu kullanabilirsiniz:
az webapp exec --resource-group <resource-group> --name <app-name>
Bir deployment slot için --slot <slot-name> parametresini ekleyin, diğer örnekleri kontrol etmek içinse --instance <instance-id> kullanabilirsiniz.
Etkileşimli kabukta kurulu paylaşılan runtime’ları listeleyin:
dotnet --list-runtimes
Framework’e bağımlı (framework-dependent) ASP.NET Core uygulamalarında Microsoft.NETCore.App ve Microsoft.AspNetCore.App girdilerini kendi sürüm hattınızın yamalı sürümüyle karşılaştırın.
Kurulu runtime listesi tek başına yeterli değil
Kurulu runtime’ların listelenmesi, uygulama sürecinizin hangi runtime’ı kullandığını kanıtlamaz. Çalışan uygulamadan System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription değerini okumak için mevcut başlangıç (startup) loglamanızı ya da tanılama altyapınızı kullanın. Ölçeklenmiş (scale-out) uygulamalarda doğrulamayı örnekler genelinde yapın, runtime tanılama bilgilerini kimlik doğrulaması olmayan genel bir uç nokta üzerinden dışarı açmaktan da kaçının.
Bir nokta daha karıştırılıyor: dotnet --version komutu SDK sürümünü bildirir, uygulamanızın kullandığı runtime’ı değil. Self-contained dağıtımlarda uygulama sürecini inceleyip dağıtımı yamalı bir runtime ile yeniden derlemeniz gerekir; platformun paylaşılan runtime listesi, paketlenmiş runtime’ınızı doğrulamaz.
İlgili diğer güncellemeler
Aynı dönemde App Service for Linux tarafında yayımlanan ayrı duyurular da var:
- Node.js ve Python acil runtime güncellemeleri, Node.js tarafındaki Brotli düzeltmesi dahil ayrı sürümleri kapsıyor.
- Saat dilimi (time zone) veri güncellemeleri, bağımsız bir güncelleme kümesi.
- eMudhra / emSign sertifika güvenlik güncellemeleri, sertifika güven deposuna ilişkin ayrı güncellemeler. Runtime güncellemeleri, uygulamanızın kendi yönettiği sertifika paketlerinin yerine geçmez.
Kaynaklar ve İleri Okuma
- .NET Brotli Security Updates on Azure App Service for Linux (orijinal duyuru)
- MSRC: CVE-2026-111497 güvenlik açığı kaydı
- .NET 8.0.33 sürüm notları
- .NET 9.0.22 sürüm notları
- .NET 10.0.14 sürüm notları
- App Service işletim sistemi ve runtime yamalama dokümanı
- Azure CLI
az webappkomut referansı - Node.js ve Python acil runtime güncellemeleri
- App Service for Linux saat dilimi güncellemeleri
- eMudhra / emSign sertifika güvenlik güncellemeleri
- Azure App Service’te runtime patch kontrolü ve WebSSH




