curl projesi, kötü amaçlı bir sunucunun yükleme yapan istemcide bellek bozulmasına ve kod çalıştırmasına neden olabildiği CVE-2026-92392 açığını 14 Ekim'de yayımlanan 8.23.0 sürümüyle giderdi.
Yazılım ve Uygulamalar
Admin1 okunma

curl 8.23.0, Sunucu Taraflı Bellek Bozulmasına Yol Açan HTTP/2 Açığını Kapattı

curl projesi, kötü amaçlı bir sunucunun yükleme yapan istemcide bellek bozulmasına ve kod çalıştırmasına neden olabildiği CVE-2026-92392 açığını 14 Ekim'de yayımlanan 8.23.0 sürümüyle giderdi.

curl 8.23.0, Sunucu Taraflı Bellek Bozulmasına Yol Açan HTTP/2 Açığını Kapattı

Haber detayı

curl'ün HTTP/2 yükleme akışındaki bir use-after-free hatası, saldırgan kontrolündeki bir sunucunun yükleme yapan istemcinin belleğini bozmasına olanak tanıyordu. Açığı bildiren araştırmacı, bu hatayı gerçek kod çalıştırmaya dönüştürdüğünü de kanıtladı. curl projesi, CVE-2026-92392 olarak takip edilen bu açığı 14 Ekim'de yayımlanan curl 8.23.0 sürümüyle kapattı. Açık, Şubat 2025'te çıkan 8.12.0 sürümünden bu yana tüm curl sürümlerini etkiliyor; kaynaklarda bu açığı istismar eden gerçek bir saldırıya dair herhangi bir rapor bulunmuyor.

Açık Nasıl İşliyor?​

HTTP/2, tek bir bağlantı üzerinden birden fazla aktarımı paralel olarak taşır. libcurl her aktarımı, "easy handle" adını verdiği bir nesneyle izler. Yükleme sırasında sunucu, HTTP/2 penceresini sıfıra çekerek aktarımı durdurur, yanıtın bir bölümünü gönderir ve ardından akışı sıfırlarken bağlantıyı açık tutar. curl bu sıfırlamayı yeniden deneme gerekçesi olarak yorumlar.
Temizlik aşamasında curl, HTTP/2 katmanına aktarımın bittiğini bildirdikten sonra gönderilmemiş yükleme verilerini aynı bağlantıya aktarır. Kayıtlı bir aktarım kalmadığı için bu artık baytlar yeni bir istek olarak okunur. Araştırmacının yüklenen dosyaya yerleştirdiği satır deseni bu baytları istek satırları gibi gösterir; böylece easy handle'a işaret eden bir işaretçi saklayan yeni bir akış açılır. Yeniden deneme işlemi yeni bir HTTP/1.1 bağlantısı üzerinden tamamlanır ve uygulama handle'ı serbest bırakır. Eski bağlantı ise bu işaretçiyi tutmaya devam eder ve sunucu o akışa bir çerçeve gönderdiğinde, program kapanırken bile, işaretçiyi kullanır.
Araştırmacının geliştirdiği istismar kodunda, sunucunun gönderdiği veri serbest bırakılan handle'ın kapladığı bellek alanına yerleşir. Dışarı giden bir istek yerel adresleri sızdırarak sunucunun adres alanı düzeni rastgeleliğini (ASLR) aşmasını sağlar. O bellekteki bir fonksiyon işaretçisi sunucudan gelen baytlarla üzerine yazılır ve curl bu işaretçiyi çağırır. curl'ün danışma belgesine göre kod çalıştırma için saldırganın hedefin tam curl sürümünü, mimarisini, libc ayırıcısını ve heap düzenini bilmesi, iki paralel aktarımın zamanlamasını doğru tutması ve yükü yaklaşık 23 bayta sığdırması gerekiyor.

Saldırı Koşulları ve Önem Derecesi​

Saldırının çalışması için istemcinin saldırgan kontrolündeki bir sunucuya HTTP/2 üzerinden yaklaşık 135 KB büyüklüğünde bir dosya yüklemesi ve sunucunun sertifikasının istemcinin denetimlerinden geçmesi gerekiyor. libcurl, sunucu HTTP/2 sunduğunda https:// URL'leri için varsayılan olarak HTTP/2'yi müzakere ediyor; ancak kütüphanenin HTTP/2 desteğiyle derlenmiş olması da şart.
curl projesi açığı kendi dört kademeli ölçeğinde Yüksek olarak derecelendirdi; bu, Ekim 2023'teki SOCKS5 heap taşmasından bu yana projenin karşılaştığı ilk Yüksek önem dereceli açık. curl Kritik yerine Yüksek derecesini tercih etti çünkü kod çalıştırma için gereken koşullar son derece katı. curl'ün baş geliştiricisi Daniel Stenberg, "Girişilen bir saldırının en olası sonucu yalnızca bir çökmedir" diye yazdı ve başarı olasılığını düşük olarak nitelendirdi. Ulusal Güvenlik Açığı Veri Tabanı, 14 Ekim itibarıyla kaydı henüz analiz etmemişti.
Düzeltme, Stefan Eissing tarafından lib/multi.c dosyasına yapılan altı satırlık bir yeniden sıralamadan ibaret. HTTP/2 katmanı artık artık yükleme verisi temizlendikten sonra handle referanslarını bırakıyor; önceki davranışın aksine bu işlem artık önce değil sonra gerçekleşiyor.

Hangi Sürümler Etkileniyor, Ne Yapılmalı?​

Açık, curl ve libcurl 8.12.0'dan 8.22.0'a kadar olan tüm sürümleri etkiliyor; hem komut satırı aracını hem de pek çok programın aktarım için kullandığı kütüphaneyi kapsıyor. Kullanıcıların 8.23.0 sürümüne yükseltmesi ya da düzeltme işlemini yerel derlemelerine uygulaması öneriliyor. Proje, destek sözleşmesi olan müşteriler için uzun vadeli destek hattı olan Rock-solid curl sürümlerini de 8.23.0 ile eş zamanlı güncelleyeceğini duyurdu.
  • curl ve libcurl 8.12.0–8.22.0: 8.23.0 sürümüne yükseltin
  • 8.14.x dalı: 8.14.3
  • 8.16.x dalı: 8.16.2
  • 8.20.x dalı: 8.20.2
  • Debian 13 (trixie): DSA-6558-1 aracılığıyla 8.14.1-2+deb13u7
\n
Debian 12 (bookworm) etkilenen kodu taşımıyor. Yayımlanan sürüm toplamda 24 CVE'yi gideriyor; diğer 23 açık Düşük önem dereceli olarak değerlendiriliyor.
Hemen güncelleme yapılamıyorsa curl, HTTP/2 kullanımını devre dışı bırakmayı öneriyor. Komut satırı aracında --http1.1 seçeneği HTTP/1.1 talep ederken uygulamalar CURLOPT_HTTP_VERSION değerini CURL_HTTP_VERSION_1_1 olarak ayarlayabiliyor. curl'ün belgeleri bu ayarın bir istek niteliği taşıdığını belirtiyor; çünkü başka bir sürüm üzerindeki mevcut bağlantı yeniden kullanılabilir. libcurl'de HTTP/2 desteği bir derleme seçeneği olduğundan, bu destek olmadan derlenen bir yapı HTTP/2 müzakere edemez ve söz konusu yükleme yoluna ulaşamaz.

Açığı Bulan: Luna Tong ve Anthropic'in OSS Tarayıcısı​

Rapor 15 Eylül'de HackerOne üzerinden curl projesine ulaştı; güvenlik ekibi bunu saatler içinde doğruladı. Proje, 7 Ekim'de bir sonraki sürümde Yüksek önem dereceli bir düzeltme geleceğini önceden duyurarak sekiz haftalık sürüm döngüsünü altı haftaya indirdi. Kötü amaçlı sunucu betiği ve kod çalıştırmayı yeniden ürettiği belirtilen Docker kapsayıcısını içeren HackerOne raporu, 14 Ekim'de danışma belgesiyle birlikte kamuoyuyla paylaşıldı.
curl, bulguyu "Luna with Claude, Anthropic" olarak tanımlıyor. Stenberg, araştırmacıyı Anthropic'ten Luna Tong olarak adlandırıyor; bulgunun şirketin yeni OSS Tarayıcısı aracılığıyla geldiğini belirtiyor ve yapay zeka modellerinin sürece dahil olduğunu tahmin ediyor. Anthropic, OSS Tarayıcısını 8 Ekim'de kayıtlı açık kaynak projelerini modelleriyle tarayan, sonuçları insan incelemesi olmaksızın yeniden üretici ve mümkün olduğunda aday yama içeren bir e-posta olarak ileten isteğe bağlı bir hizmet olarak açtı. curl raporu ise bu kamuoyu lansmanından üç hafta önce geldi.
Stenberg, Temmuz 2025'te o yılki curl güvenlik başvurularının yaklaşık beşte birinin yapay zeka kaynaklı düşük kaliteli raporlar olduğunu ve yalnızca yirmide birinin gerçek çıktığını yazmıştı. curl projesi, dahili handle işaretçilerini gerektiğinde aradığı tanımlayıcılarla değiştirme çalışmalarını sürdürüyor; ancak bu yaklaşımın başka bir use-after-free'ye karşı güvence vermediğini de kabul ediyor. Proje, hatanın bellek güvenli bir dilde büyük olasılıkla önlenebileceğini belirtiyor; ancak curl'ü böyle bir dilde yeniden yazmayı planlamıyor.

Sıkça Sorulan Sorular​

CVE-2026-92392 hangi curl sürümlerini etkiliyor?​

Açık, Şubat 2025'te yayımlanan 8.12.0 sürümünden başlayarak 8.22.0 dahil tüm curl ve libcurl sürümlerini etkiliyor. Hem komut satırı aracı hem de kütüphane kapsamda yer alıyor.

Saldırının gerçekleşmesi için hangi koşulların sağlanması gerekiyor?​

İstemcinin saldırgan kontrolündeki bir sunucuya HTTP/2 üzerinden yaklaşık 135 KB büyüklüğünde dosya yüklemesi, sunucu sertifikasının istemci denetimlerinden geçmesi ve libcurl'ün HTTP/2 desteğiyle derlenmiş olması gerekiyor. Bunlara ek olarak kod çalıştırma için saldırganın hedefin tam curl sürümünü, mimarisini, libc ayırıcısını ve heap düzenini bilmesi, iki paralel aktarımın zamanlamasını doğru yönetmesi ve yükü yaklaşık 23 bayta sığdırması gerekiyor.

Güncelleme yapılamıyorsa ne yapılabilir?​

curl, HTTP/2 kullanımını devre dışı bırakmayı öneriyor. Komut satırı aracında --http1.1 seçeneği kullanılabilirken uygulamalar CURLOPT_HTTP_VERSION değerini CURL_HTTP_VERSION_1_1 olarak ayarlayabilir. HTTP/2 desteği olmadan derlenmiş bir libcurl yapısı da etkilenen yükleme yoluna ulaşamıyor.

Açığı kim buldu ve nasıl raporlandı?​

Açık, Anthropic'ten Luna Tong tarafından bulundu. curl bu bulguyu "Luna with Claude, Anthropic" olarak tanımlıyor. Rapor 15 Eylül'de HackerOne üzerinden curl projesine iletildi ve güvenlik ekibi tarafından saatler içinde doğrulandı. Stenberg, bulgunun Anthropic'in OSS Tarayıcısı aracılığıyla geldiğini ve yapay zeka modellerinin sürece dahil olduğunu tahmin ettiğini belirtti.

curl bu açığı neden Kritik değil Yüksek olarak derecelendirdi?​

Başarılı bir kod çalıştırma için gereken koşullar son derece katı olduğundan curl, açığı Kritik yerine Yüksek olarak değerlendirdi. Stenberg, girişilen bir saldırının en olası sonucunun kod çalıştırma değil çökme olduğunu belirterek başarı olasılığını düşük olarak nitelendirdi.

Etiketler

Yorumlar (0)

Yorum yapmak için giriş yapmalısınız.

Geri
Üst