OpenSSL, DTLS’te heap sızıntısı ve çökme açığını kapattı

Anasayfa » OpenSSL, DTLS’te heap sızıntısı ve çökme açığını kapattı
OpenSSL, DTLS’te heap sızıntısı ve çökme açığını kapattı

OpenSSL, UDP trafiğinde kullanılan DTLS katmanında bir el sıkışma mesajı yeniden gönderildiğinde heap belleğinin şifrelenmemiş şekilde dışarı sızmasına ya da sürecin çökmesine yol açabilen yüksek önem dereceli bir açığı düzeltti. CVE-2026-84782 olarak izlenen sorun, 29 Eylül’de yayımlanan yamalarla giderildi.

Açıktan etkilenme, yazılımın DTLS için OpenSSL kullanmasına bağlı. DTLS, WebRTC veri kanalları ve internet çağrılarında anahtar değişimi gibi alanlarda kullanılıyor. OpenSSL, saldırganın yeniden gönderim anını özellikle tetikleyip tetikleyemeyeceğine dair bir açıklama yapmadı; bugüne kadar istismar edildiğine dönük bir bulgu da paylaşmadı.

Yeniden gönderim sırasında yanlış konumdan okuma

Hata, DTLS’in büyük el sıkışma mesajlarını tek bir UDP datagramına sığacak parçalara bölerek göndermesinden kaynaklanıyor. Bağlantı o anda daha fazla veri alamıyorsa gönderim yarıda kalabiliyor, ardından daha sonra kaldığı yerden devam ediyor. Bu sırada zamanlayıcı tekrar devreye girerse, daha önce gönderilmiş bir mesaj yeniden yollanıyor.

Yamadan önceki sürümlerde bu yeniden gönderim, mesajın başına dönmek yerine tampon bellekteki askıda kalan mesajın konumunu kullanıyordu. Böylece dışarı çıkan paket, yanlış etiketle gönderiliyor; gövdesinde ise daha büyük mesajdan arta kalan baytlar yer alıyordu. OpenSSL’in açıklamasına göre okuma işlemi bu yüzden tampon sınırlarını aşabiliyor, bazı durumlarda ise heap belleğindeki içerik karşı tarafa şifrelenmemiş el sıkışma verisi olarak taşınabiliyordu. Okuma işaretçisi eşlenmemiş bir bellek alanına gelirse süreç çöküyordu.

OpenSSL, hatanın DTLS istemcileriyle ya da sunucularıyla sınırlı olmadığını vurguladı; düzeltme her iki rolde de test edildi. DTLS’in yazılımda hangi rolde kullanıldığından bağımsız olarak aynı açık ortaya çıkabiliyor. Buna karşın etki, yalnızca OpenSSL tabanlı DTLS kullanan yazılımlarla sınırlı kalıyor.

Laurent Gaffie of Secorizon, açığı 17 Ağustos’ta bildirdi. Ryan Hooper, düzeltmeyi geliştirdi.

OpenSSL, hatayı kendi ölçeğinde High olarak derecelendirdi. Bu seviye, Critical’ın bir altında yer alıyor. Projenin güvenlik politikası, High düzeyindeki yamaların olabildiğince hızlı kurulmasını öneriyor.

CISA, 29 Eylül’de açığa 10 üzerinden 8.2 CVSS puanı verdi. Kurum, gizlilik etkisini düşük, erişilebilirlik etkisini ise yüksek olarak sınıflandırdı. Kayıtlar hazırlanırken istismar durumu “yok” görünüyordu. OpenSSL, kendi önem derecelendirmesinde CVSS kullanmadığını ve dışarıdan verilen puanların kurumun sınıflandırmasıyla ciddi biçimde farklılaşabildiğini hatırlattı.

Ubuntu’nun güvenlik duyurusunda saldırganın bu açığı “yanlış el sıkışma davranışı” üretmek veya hizmet dışı bırakma saldırısı gerçekleştirmek için kullanabileceği yazıldı. Duyuruda bellek sızıntısına değinilmedi.

Hangi sürümler düzeldi, hangileri destek dışı kaldı

OpenSSL, açık için 4.0.3, 3.6.5, 3.5.9 ve 3.4.8 sürümlerini yayımladı. Bunlar sırasıyla 4.0, 3.6, 3.5 ve 3.4 dallarındaki ilk güvenli sürümler. 4.0 dalı için yama herkese açık indirme olarak sunuldu; destek süresi 14 Mayıs 2027’ye kadar devam ediyor. 3.6 için düzeltilmiş sürüm 1 Kasım 2026’ya kadar desteklenecek. 3.5 uzun vadeli destek sürümü olarak 8 Nisan 2030’a kadar açık kalacak. 3.4 dalının desteği ise 22 Ekim 2026’da sona eriyor.

Daha eski 3.0, 1.1.1 ve 1.0.2 serilerindeki düzeltmeler yalnızca OpenSSL’in ücretli destek müşterilerine veriliyor. 3.0 dalı için 3.0.23, 1.1.1 için 1.1.1zj, 1.0.2 için de 1.0.2zs sürümü hazırlandı. OpenSSL 3.0’ın kamuya açık güvenlik güncellemesi alma dönemi 7 Eylül’de bitmişti.

3.1, 3.2 ve 3.3 dalları için herhangi bir düzeltme listelenmedi. OpenSSL, bu dalların etkilenip etkilenmediğini ayrıca doğrulamadığını belirtti.

OpenSSL’in yayımladığı notta, CVE-2026-84782 için 4.0, 3.6, 3.5, 3.4, 3.0, 1.1.1 ve 1.0.2 dallarının etkilendiği, listelenen sabit sürümden önceki tüm yayımların açıktan etkilendiği aktarıldı. 3.1, 3.2 ve 3.3 için ise herhangi bir sabit sürüm gösterilmedi.

OpenSSL, kullanıcılar için herhangi bir geçici çözüm de sunmadı. Yama uygulayamayanlar açısından tek seçenek, güncellemeyi kurabilen bir sürüme geçmek ya da ücretli destek kapsamına girmek olarak kaldı.

Ubuntu ve Debian paketleri

Ubuntu, 29 Eylül’de kendi paketlerinde de yamayı yayımladı. Güncelleme, sürüm numaralarını eski tutan paket adlarıyla geldi: Ubuntu 26.04 LTS için libssl3t64 3.5.5-1ubuntu3.6, Ubuntu 24.04 LTS için libssl3t64 3.0.13-0ubuntu3.16 ve Ubuntu 22.04 LTS için libssl3 3.0.2-0ubuntu1.30. Ubuntu kullanıcılarının, değişikliklerin tamamen uygulanması için güncelleme sonrasında sistemi yeniden başlatması gerekiyor.

Debian tarafında da Debian 13 için openssl paketinin 3.5.7-1~deb13u3 sürümü, DSA-6531-1 duyurusuyla düzeltildi. Debian’ın güvenlik izleyicisi 30 Eylül saat 07:36 UTC itibarıyla Debian 12’yi hâlâ etkileniyor olarak gösteriyordu.

OpenSSL 3.0 kullananlar için tablo daha sınırlı. Son kamuya açık 3.0 sürümü 25 Ağustos’ta çıkan 3.0.22 idi. 3.0.23 ise OpenSSL’in kamuya açmadığı ilk 3.0 güvenlik sürümü oldu ve 29 Eylül’de açıklanan 14 açığın 6’sını kapattı; CVE-2026-84782 de bunlar arasında yer aldı. Ubuntu 22.04 ve 24.04, 3.0 tabanlı paketlerinde düzeltmeyi zaten sunuyor. Ancak kendi yazılımına OpenSSL 3.0 derleyen ya da gömülü olarak taşıyan kullanıcılar için OpenSSL’in kamuya açık bir yaması bulunmuyor.

Kuruluş, bu durumda daha yeni bir dala geçilmesini öneriyor. 4.0 ya da uzun vadeli destek sürümü 3.5, OpenSSL’in işaret ettiği seçenekler arasında. Diğer yol ise, destek tarihi geçen sürümler için güvenlik güncellemelerine erişim sağlayan ücretli destek sözleşmesi.

OpenSSL, 3.0.23’ün 29 Eylül’de açıklanan 14 açığın yalnızca bir bölümünü kapattığını da not etti. Aynı toplu güncellemeyle kalan 13 açık için de yamalar yayımlandı.

Toplu güncellemedeki diğer açıklar

29 Eylül’deki toplu güncellemeler toplam 14 açığın 13’ünü kapattı. Bunların en ciddisi CVE-2026-84783 oldu; Orta seviyede değerlendirilen bu hata yalnızca OpenSSL 4.0’ı etkiliyor. Uzaktaki, kimliği doğrulanmamış bir eş, çok iş parçacıklı bir TLS istemcisini ya da istemci sertifikası isteyen çok iş parçacıklı bir TLS sunucusunu çökertmek için bu açığı kullanabiliyor. Bunun gerçekleşmesi için birden fazla bağlantının ilk sertifika zincirlerini aynı güvenilen CA sertifikasına aynı anda kurması gerekiyor.

Bir diğer DTLS açığı CVE-2026-75806 ise Düşük seviyede sınıflandırıldı. Bu hata, AEAD şifre paketi kullanan ve kurulmuş DTLS 1.2 bağlantılarını etkiliyor. Böyle bir bağlantıya datagram gönderebilen herkes, anahtarları bilmeden tek bir fazla kısa datagramla oturumu sonlandırabiliyor.

Kalan 11 açık da Düşük olarak derecelendirildi. Bu grubun içinde OpenSSL’in QUIC kodunda 5, ECDSA ve SM2 kodunda ise 3 zamanlama yan kanalı yer alıyor.

CVE-2026-84782 için NVD kaydı: https://nvd.nist.gov/vuln/detail/CVE-2026-84782