Siber Güvenlik

NGINX 1.30.6 ve 1.31.7 ile beş açık kapatıldı, biri 2005'ten beri sürüyor

NGINX 1.30.6 ve 1.31.7 ile beş açık kapatıldı, biri 2005'ten beri sürüyor

NGINX 14 Ekim'de 1.30.6 ve 1.31.7 sürümlerini yayınlayarak beş güvenlik açığını kapattı; bunlardan biri Mayıs 2005'ten beri her sürümde bulunuyor.

Üç bellek hatası F5'e göre çalışan sürecin çökmesine ya da saldırganın kod çalıştırmasına olanak tanıyabilir ve her biri istismar için belirli bir yapılandırma gerektiriyor.

Dördüncüsü saldırganın istemci sertifikası kontrollerini aşabilecek şekilde sahte bir TLS oturumu oluşturmasına izin veriyor; F5 sahteciliğin belirsiz ve saldırganın kontrolü dışında olduğunu belirtiyor. Beşincisi bir HTTP/3 istemcisinin istek içine ek baytlar sokmasına ve NGINX'in bunları arka uca iletmesine yol açıyor.

Beş açığın hiçbiri 15 Ekim itibarıyla CISA'nın Bilinen İstismar Edilen Açıklar kataloğunda yok ve ne NGINX ne de F5 saldırı bildirmedi. NGINX hepsini orta düzeyde derecelendiriyor. F5 üç bellek hatasını CVSS v4.0'da 9.2 Kritik, TLS açığını 8.3 ve HTTP/3 açığını 6.9 olarak puanlıyor.

Hangi Yapılandırmalar Etkileniyor

Beşinin de siz eklediğiniz bir yönergeye ihtiyacı var: yeniden yazma ile alias, regex map, AIO ile SSI, paylaşılan bir TLS oturum önbelleği ya da HTTP/3. NGINX'in kendi dokümantasyonu paylaşılan oturum önbelleğini ve istek arabelleklemeyi öneriyor; HTTP/3 açığının diğer koşulu varsayılan olarak açık.

TLS açığı oturum bilet anahtarlarının otomatik döndürülmesinde bulunuyor. Oturum biletleri istemcinin tam el sıkışma olmadan TLS oturumunu sürdürmesini sağlıyor ve 2022 Ekim'den itibaren 1.23.2 sürümünden beri paylaşılan bir oturum önbelleği NGINX'in bilet anahtarlarını kendisinin oluşturup döndürmesini sağlıyor; anahtarları dosyadan yüklemiyorsanız.

Her çalışan süreç üç anahtar yuvasının bir kopyasını tutuyor. Döndürme yalnızca ikisini kopyaladı, üçüncü yuva bellekte önceden ne varsa onu tuttu ve bu yuvayı adlandıran bir bilet, başlatılmamış anahtar materyaliyle doğrulanıp şifresi çözülebildi; düzeltme commit'i "sahte bir oturum sağlamaya izin veriyor" diyor.

F5 sahteciliğin "saldırganın kontrolü dışındaki belirsiz bir şekilde" çalıştığını ve saldırganın bunu istemci sertifikalarının doğrulanmasını atlatmak için kullanabileceğini söylüyor. Açığa çıkan ayar ssl_session_cache shared:SSL:10m, NGINX dokümantasyonunun örnek yapılandırmasında kullandığı ayar. NGINX aynı sonuçla gelen bir oturum yeniden kullanımı açığını CVE-2025-23419'u Şubat 2025'te düzeltmişti.

Aşağıdaki koşullar ve geçici çözümler NGINX'in ve F5'in. Sürüm aralıkları NGINX'in danışma sayfasından.

Ne sağlıyor

Sizi açığa çıkaran yapılandırma

Yükseltelemiyorsanız (F5)

Çalışan süreçte yığın taşması: çökme, olası kod çalıştırma

alias içeren bir konum, URI'yi değiştiren bir yeniden yazma ve $request_filename'i okuyan her şey (return, set, if, add_header veya erişim günlüğü biçimi)

0.1.29'dan 1.31.6'ya

Bu konumda alias kullanmayın. $request_filename kullanmayın.

Çalışan süreçte yığın taşması: çökme, olası kod çalıştırma

Kapsamları root veya log_format tarafından regex map'in çıktı değişkeninden önce referans verilen bir regex map

1.30.0'dan 1.30.5'e ve 1.31.2'den 1.31.6'ya

Adlandırılmış yakalamalar kullanın ve bunları yalnızca regex eşleşmesinin bulunduğu blok içinde kullanın.

Çalışan süreçte use-after-free: çökme, bellek bozulması, olası kod çalıştırma

aio etkin ve include virtual komutları olan bir SSI sayfası, bazı yapılandırmalarda

0.8.11'den 1.31.6'ya

aio'yu kapatın ya da SSI sayfaları sunmayın.

Yönlendirilen bir isteğe enjekte edilen ek baytlar ya da client_max_body_size ötesinde bir gövde, varsayılan

1.25.0'dan 1.31.6'ya

proxy_request_buffering'i kapalı yapın.

İstemci sertifikası doğrulamasını atlatabilecek sahte bir TLS oturumu (F5'e göre belirsiz ve saldırganın kontrolü dışında)

ssl_session_cache shared:... olmadan

, otomatik anahtar döndürmeyi açan

1.23.2'den 1.31.6'ya

Paylaşılan önbellek yönergesini kaldırın ya da ssl_session_ticket_key ile anahtarları dosyadan yükleyin. ssl_session_tickets kapalı olan sunucular etkilenmiyor.

Bir Açık temmuzdaki Düzeltmeye İlişiyor

Map açığı CVE-2026-93479, NGINX'in 15 Temmuz'da CVE-2026-42533 için yama yaptığı dize işleme kodunda bulunuyor; F5'in 9.2 puan verdiği yığın taşması bir regex map'in kapsamları üzerinden ulaşılıyor.

Yeni taşma, düzeltme commit'ine göre Temmuz sürümündeki bir değişiklikten sonra mümkün hale geldi. Temmuz yaması tamponu aşan korumayı ekledi ancak veriler yine de ayrılmış alana taşabiliyordu ve ikinci bir Temmuz yaması ardından o taşan uzunluktan son dize boyutunu belirledi, böylece dize tamponunu aşabildi.

Commit bunun sınırlarını koyuyor. Taşma en fazla belge kök yolundaki ayrılmış alanın boyutu kadar ve erişim günlüğü yolunda tek bir null bayt.

F5'in danışması ve NGINX'in danışma sayfası en erken etkilenen sürümler olarak 1.30.0 ve 1.31.2'yi listeliyor; bunlar Temmuz değişikliğinden önce geliyor. Temmuzda yama yapılmış bir sunucu her halükarda etkilenen aralıktadır.

F5'in temmuzdaki geçici çözümü zaten sorgulanmıştı. Araştırmacı Stan Shaw temmuzda The Hacker News'e adlandırılmış yakalamalara geçmenin daha dar bir yol bıraktığını ve yükseltmenin "tek tam çözüm" olduğunu söyledi.

alias, AIO ve HTTP/3 açıkları için düzeltme commit'leri diğer üç hatayı anlatıyor. alias açığı bir yeniden yazma isteğin URI'sini değiştirdikten hemen sonra ve NGINX bir sonraki konumu seçmeden önce açılıyor. Bu pencerede $request_filename'i okuyan bir şey varsa ve konumun öneki yeniden yazılan URI'den uzunsa, URI'yi dosya yoluna eşleme tamponu taşır.

AIO açığı bir sayaç. Bir istek üzerindeki her bekleyen eşzamansız işlem 8 bitlik bir alana kontrolsüz şekilde bir ekliyor, böylece 256 bekleyen işlem onu sıfıra sarıyor ve istek, işlemler hâlâ belleğine işaret ederken serbest bırakılabiliyor. NGINX include virtual komutları olan SSI sayfalarını tetikleyici olarak adlandırıyor; bu sayfalar dahil edilen istekleri paralel çalıştırabiliyor.

HTTP/3 açığı bir ayrıştırıcı alanın iki iş yapmasından kaynaklandı: atlanan bilinmeyen bir çerçevenin kalan uzunluğunu tutmak ve istek gövdesi olarak iletilecek DATA baytlarının sayısı. Bilinmeyen bir çerçeve iki okuma arasında bölündüğünde, kalan sayı gövde olarak ele alınıp arka uca gönderildi ve client_max_body_size kontrolü dışında kaldı.

Ne Yapılmalı

Kararlı dalda 1.30.6'ya ya da mainline'da 1.31.7'ye yükseltin. Kararlı sürüm yalnızca düzeltmeler içeriyor. NGINX yalnızca bu iki dal için düzeltme yayınlıyor, bu yüzden 1.28 gibi daha eski dallar etkilenen aralıklar içinde kalıyor ve bir dağıtım paketi yalnızca dağıtım yamaları geri taşıdıysa düzeltilmiş oluyor.

NGINX Plus müşterileri ve F5'in Ingress Controller, Gateway Fabric, Instance Manager ve WAF ürünlerini kullananlar, 15 Ekim itibarıyla etkilenen derlemeleri ve birkaç ürün için düzeltme bulunmadığını listeleyen F5 danışmalarını kontrol etmeli.

Hâlâ yükseltilemiyorsa yukarıdaki tabloda F5'in her açık için geçici çözümü var. Sunucunuzda hangi yolların etkin olduğunu görmek için çalışan yapılandırmayı nginx -T ile yazdırın ve alias'ın bir yeniden yazma yanında, root veya log_format tarafından kullanılan bir regex map, aio ile ssi, quic ile listen satırları ve ssl_session_ticket_key olmadan ssl_session_cache shared araması yapın.

NGINX'in mayısta yama yaptığı yeniden yazma modülü taşması CVE-2026-42945, ifşa edildikten günler içinde istismar ediliyordu; bunu VulnCheck buldu. Bu, NGINX'in 2026'nın sekizinci güvenlik sürümü.

F5 map açığını Tolmo'dan Matt Suiche ve Mateusz Gierblinski ile, HTTP/3 açığını GOTROOT'tan Hansol Lee ile, TLS açığını PhiNode Labs ile ve AIO açığını Cyberlanc3r adlı araştırmacı ile ilişkilendiriyor.

F5 alias açığını kendisi buldu. NGINX aynı gün JavaScript modülünde iki orta şiddette XML işleme açığı CVE-2026-101025 ve CVE-2026-101019'u düzelten njs 1.0.2'yi de yayınladı.

Kaynak: The Hacker News

Paylaş:

Yapay zekâ asistanları için: bu haberin Markdown (.md) sürümü