Curl veri aktarım kitaplığını etkileyen iki güvenlik açığı için yamalar yayınlandı; bunlardan en ciddi olanı potansiyel olarak kod yürütülmesine neden olabilir.
Güvenlik açıklarının listesi aşağıdaki gibidir:
- CVE-2023-38545 (CVSS puanı: 7,5) – SOCKS5 yığın tabanlı arabellek taşması güvenlik açığı
- CVE-2023-38546 (CVSS puanı: 5,0) – Dosyasız çerez yerleştirme
CVE-2023-38545, bu ikisinden daha şiddetli olanı ve projenin baş geliştiricisi Daniel Stenberg tarafından “muhtemelen uzun zamandır en kötü Curl güvenlik kusuru” olarak tanımlandı. Libcurl’un 7.69.0’dan 8.3.0’a kadar olan sürümlerini etkiler.
Bakımcılar bir danışma belgesinde “Bu kusur, Curl’ün SOCKS5 proxy el sıkışmasında yığın tabanlı bir arabellek taşmasına neden oluyor” dedi. “Curl’den, adresin Curl tarafından çözülmesi yerine çözümlenmesine izin vermek için ana bilgisayar adını SOCKS5 proxy’sine iletmesi istendiğinde, ana bilgisayar adının olabileceği maksimum uzunluk 255 bayttır.”
“Ana bilgisayar adının 255 bayttan uzun olduğu tespit edilirse Curl, yerel ad çözümlemeye geçer ve bunun yerine çözümlenen adresi yalnızca proxy’ye aktarır. Bir hata nedeniyle, ‘ana bilgisayarın adı çözümlemesine izin ver’ anlamına gelen yerel değişken, Yavaş bir SOCKS5 anlaşması sırasında yanlış değer elde edin ve amacın aksine, yalnızca çözümlenen adresi oraya kopyalamak yerine çok uzun ana bilgisayar adını hedef arabelleğe kopyalayın.”
Curl, güvenlik açığından büyük olasılıkla hizmet reddi saldırısına gerek kalmadan yararlanılabileceğini ve kötü amaçlı bir HTTPS sunucusunun özel hazırlanmış bir URL’ye yönlendirme gerçekleştirmesiyle taşmanın tetiklenebileceğini söyledi.
JFrog, “Curl’ün her yerde bulunan bir proje olduğu göz önüne alındığında, bu güvenlik açığının uzaktan kod yürütmek için vahşi ortamda istismar edileceği ve daha karmaşık istismarların geliştirileceği güvenle varsayılabilir” dedi. “Ancak bir makinenin savunmasız olması için gereken ön koşullar seti, başlangıçta inanıldığından daha kısıtlayıcıdır.”
SANS Teknoloji Enstitüsü araştırma dekanı Johannes B. Ullrich, “Geçerli bir istismar, bir saldırganın örneğin Curl’de kod yürütülmesini tetikleyecek bir web uygulamasına bir ana bilgisayar adı ileterek kod yürütmesini tetiklemesini gerektirir” dedi. . “Sonra, istismar yalnızca Curl’ün SOCKS5 proxy’sine bağlanmak için kullanılması durumunda mevcut olur. Bu başka bir bağımlılıktır ve istismar olasılığını azaltır.”
Libcurl’un 7.9.1’den 8.3.0’a kadar olan sürümlerini etkileyen ikinci güvenlik açığı, kötü niyetli kişilerin belirli koşullar altında libcurl’u kullanarak çalışan bir programa kendi isteğiyle çerezler eklemesine olanak tanıyor.
Her iki kusura yönelik yamalar, 11 Ekim 2023’te yayımlanan 8.4.0 sürümünde mevcuttur. Özellikle güncelleme, ana bilgisayar adı çok uzunsa Curl’ün artık yerel çözümleme moduna geçmemesini sağlar ve böylece yığın tabanlı arabellek taşması riskini azaltır.
Stenberg, “Eğer Curl, C yerine hafıza açısından güvenli bir dilde yazılmış olsaydı, bu kusur ailesi imkansız olurdu, ancak Curl’ü başka bir dile taşımak gündemde değil” diye ekledi.