Node.js projesi 21 Ekim 2026’da 10 güvenlik açığı için düzeltme yayımladı. Listede DNS çözümlemesi ve TLS sertifika doğrulamasındaki kusurlar var, bir de saldırganın kontrol ettiği veri işlendiğinde belleği bozabilen, kod çalıştırmaya kadar gidebilen bir Brotli açma (decompression) hatası. Düzeltmeler 22.23.4, 24.22.1 ve 26.12.1 sürümleriyle dağıtıldı; her CVE’nin etkilediği dal ve ön koşullar birbirinden farklı.
Azure Pipelines tarafında Node.js birden fazla katmanda devreye giriyor ve her katmanın güncelleme yolu ayrı. Agent’ın görev çalıştırıcıları, pipeline adımlarının seçtiği Node.js sürümü ve uygulamanın kendi çalışma zamanı aynı şey değil; birini güncellemek diğerini düzeltmiyor.
Açıkların kapsamı ve ön koşulları
Kaynak, yalnızca kurulu olmanın tek başına maruziyet anlamına gelmediğini özellikle vurguluyor. Her CVE’nin tetiklenmesi için belirli koşullar gerekiyor:
- DNS çözümleme ve TLS doğrulama:
CVE-2026-105482, tam ad üzerinden yapılan güvenlik kontrolünden sonra NUL karakteri içeren DNS adlarını kırpabiliyor.CVE-2026-105483,CVE-2026-106069veCVE-2026-106072ise alışılmadık IP yazımlarıyla sertifika kimlik kontrollerinin atlatılabilmesine ilişkin; gereken sertifika ve çözümleyici koşulları her biri için farklı. - Brotli açma:
CVE-2026-111497, saldırganın kontrol ettiği bozuk verinin etkilenen bir çözücüye ulaşmasını gerektiriyor. Bellek bozulması çökmeye, bellek içeriğinin sızmasına ya da potansiyel olarak kod çalıştırılmasına yol açabiliyor. - HTTP keep-alive yanıt işleme:
CVE-2026-105481, yeniden kullanılan bir keep-alive bağlantısında Node.js HTTP istemcisinin istenmemiş veriyi sonraki bir isteğin yanıtı gibi kabul etmesine neden olabiliyor. - Başlangıç anlık görüntüsü (startup snapshot) entropisi:
CVE-2026-106074, entropi API’leri startup-snapshot sırasında veya snapshot etkin tek yürütülebilir uygulama (SEA) üretimi sırasında çalıştığında, önbelleğe alınan rastgele değerlerin uygulama örnekleri arasında tekrarlanmasına yol açabiliyor. - Permission Model ve ZIP doğrulama: Kısıtlı Permission Model altında
CVE-2026-106073yol bilgisini açığa çıkarabiliyor,CVE-2026-106071ise belirli joker (wildcard) kurallarında gereğinden fazla erişim verebiliyor.CVE-2026-106070, başlık doğrulaması başarısız olduktan sonra saldırganın kontrolündeki ZIP içeriğini döndürebiliyor.
Etkilenen dallar açısından iki ayrıntı öne çıkıyor. ZIP ve joker karakter izni sorunları yalnızca Node.js 26 için listeleniyor, tam genişlikli IP sorunu (CVE-2026-105483) ise 24 ve 26 için geçerli. Etkilenen dalları ve ön koşulları tek tek görmek için Node.js’in yayımladığı güvenlik duyurusundaki ilgili bölümlere bakmak gerekiyor.
Azure Pipelines tarafında ne yapmalı?
Self-hosted agent’lar
Agent sürümü v5.281.1 23 Ekim’de yayımlandı ve Node24 çalıştırıcısını 24.22.1 sürümüne güncelliyor. Kaynak burada iki sınırı açıkça belirtiyor: bu güncelleme her platform paketinde bulunmuyor ve bu sürüm, filo genelinde bir dağıtımın ya da diğer çalıştırıcı ailelerinin düzeltildiğinin garantisi değil.
Pratik sıra şöyle işliyor. Önce ürün, işletim sistemi ve mimari uyumluluğunu doğrulayın, ardından desteklenen agent havuzu güncelleme sürecini izleyin. Azure DevOps On-Prem kullanıyorsanız bu agent sürümünü her yere kurmak yerine, kendi sürümünüz için geçerli agent destek kurallarına uyun. Güncellemenin tamamlandığını varsaymayın; görev tanılama (diagnostics) çıktılarını inceleyip seçilen handler’ın ikilisini ve sürümünü doğrulayın.
Microsoft-hosted agent’lar
Microsoft-hosted agent ve imajların bakımını Microsoft üstleniyor, bu da yalnızca Azure DevOps Hosted için geçerli. Yine de pipeline adımlarınızın kurduğu veya seçtiği Node.js hala sizin kontrolünüzde. İmaj etiketine bakıp yama durumunu çıkarsamak yerine, işin gerçekten çalıştığı imajı, agent’ı ve seçilen yürütülebilir dosyayı doğrulamak gerekiyor.
Pipeline’ın seçtiği Node.js
UseNode@1 görevi version, NodeTool@0 görevi ise versionSpec parametresini alıyor. İkisinde de checkLatest varsayılan olarak false, bu yüzden 24.x gibi geniş bir aralık önbellekteki daha eski bir yama sürümünü seçebilir. Doğru yaklaşım, aynı ana sürüm hattında geçerli düzeltilmiş bir sürümü ya da sonraki desteklenen bir yamayı açıkça seçmek ve bu seçimi güncel tutmak.
Doğrulama için ilgili adımın içinde şu iki komutu çalıştırabilirsiniz:
node --version
node -p "process.execPath"
Bu görevler PATH‘i günceller, agent’ın gömülü görev çalıştırıcılarını değil. Yani UseNode@1 ile yeni bir sürüm seçmeniz, task handler’larının hangi Node.js ile çalıştığını değiştirmiyor.
Task’lar ve uzantılar
Uzantı yayıncılarının yapması gereken, handler’ları ve bağımlılıkları güncelleyip uyumluluğu test etmek, ardından güncellenmiş uzantıyı yayımlamak. Tüketici tarafında ise uyumlu ve desteklenen görev sürümlerini kullanmak gerekiyor. Daha yeni bir çalıştırıcı, uyumsuz task kodunu uyumlu hale getirmiyor. Bu nedenle her task’ı zorla Node24’e taşımaya çalışmayın.
Container’lar ve dağıtılmış uygulamalar
Job container’ları agent’ın sağladığı Node.js’i kullanabileceği gibi, imajın içindeki veya özel kurulmuş bir Node.js’i de kullanabilir. Uygulama çalışma zamanlarının ise ayrı servislenmesi gerekiyor: etkilenen çalışma zamanı ya da imaj girdilerini güncelleyin, yeniden derleyip dağıtın ve çalışan sürümü doğrulayın. Startup-snapshot ve tek yürütülebilir uygulama (SEA) çıktılarını da bu kapsama dahil edin. Host üzerindeki ya da PATH‘teki güncellemeler, imaja gömülü çalışma zamanlarını veya halihazırda dağıtılmış artefaktları değiştirmiyor.
.NET tarafında Brotli düzeltmesi
Microsoft’un 25 Ekim tarihli.NET güvenlik güncellemesi duyurusu da aynı Brotli açığını (CVE-2026-111497) modern.NET için kapsıyor. Maruziyet için saldırganın kontrol ettiği Brotli verisinin, etkin istek/yanıt sıkıştırma açma yolu üzerinden veya doğrudan Brotli API’leri aracılığıyla etkilenen bir çözücüye ulaşması gerekiyor..NET Framework bu duyurudan etkilenmiyor.
Düzeltilmiş modern.NET çalışma zamanı temel sürümleri 8.0.33, 9.0.22 ve 10.0.14; önizleme sürümleri için ayrı yönlendirme bulunuyor. Uygulama tipine göre izlenecek yol şöyle:
- Framework-dependent uygulamalar: paylaşılan çalışma zamanını güncelleyin ve uygulamayı yeniden başlatın.
- Self-contained uygulamalar: yeniden derleyip yeniden dağıtın.
- NativeAOT uygulamalar: yamalı SDK’yı ve ilgili derleyici/çalışma zamanı paketlerini kullanıp yeniden yayımlayın ve dağıtın.
Özet: hangi katmanı kim güncelliyor?
| Katman | Güncelleme yolu |
|---|---|
| Self-hosted agent görev çalıştırıcısı | Agent v5.281.1 (Node24 → 24.22.1), desteklenen havuz güncelleme süreciyle |
| Microsoft-hosted agent / imaj | Microsoft tarafından; siz yine de seçilen yürütülebiliri doğrulayın |
| Pipeline’ın seçtiği Node.js | UseNode@1 / NodeTool@0 ile açık sürüm seçimi |
| Task ve uzantılar | Yayıncı güncellemesi + uyumlu task sürümü kullanımı |
| Container ve dağıtılmış uygulamalar | İmaj/çalışma zamanı güncellemesi, yeniden derleme ve dağıtım |
| .NET Brotli (CVE-2026-111497) | 8.0.33 / 9.0.22 / 10.0.14 temel sürümleri |
Bir agent sürümünü yükseltmek zincirin tamamını kapsamıyor. Maruziyeti belirleyen şey, ilgili kodun gerçekten hangi Node.js ikilisiyle çalıştığı ve CVE’nin ön koşullarının sağlanıp sağlanmadığı. Doğrulama adımlarını (handler sürümü, node --version, process.execPath, çalışan uygulamanın sürümü) atlamamakta fayda var.
Kaynaklar ve İleri Okuma
- October 2026 Node.js vulnerabilities: Azure DevOps security guidance (Azure DevOps Blog, Josef Sin)
- Node.js Ekim 2026 güvenlik duyurusu
- Node.js 22.23.4 sürüm notları
- Node.js 24.22.1 sürüm notları
- Node.js 26.12.1 sürüm notları
- Azure Pipelines agent v5.281.1 sürüm sayfası
- Azure Pipelines agent’ları ve havuz güncelleme süreci
- v5 agent dokümantasyonu
- Microsoft-hosted agent’lar
- UseNode@1 görev referansı
- NodeTool@0 görev referansı
- Azure Pipelines Node.js çalıştırıcıları
- Azure DevOps uzantısı yayımlama rehberi
- Axios npm Saldırısı: Azure Pipelines’ta Ne Yapmalı?





Tam zamanında denk geldi, bizim pipeline’larda hâlâ eski Node sürümü dönüyordu. DNS/TLS doğrulama tarafındaki açık özellikle ürkütücü, hemen güncelleme planına alıyorum. Azure Pipelines’ta sürüm sabitleme konusuna değinmeniz de iyi olmuş, çoğu kişi orayı atlıyor.