CVE-2022-4450
Açıklama
PEM_read_bio_ex() fonksiyonu bir BIO üzerinden PEM dosyası okur; "name" (örneğin "CERTIFICATE"), tüm üstbilgi verilerini ve yük verisini ayrıştırıp çözer. Fonksiyon başarılı olursa "name_out", "header" ve "data" bağımsız değişkenleri, ilgili çözülmüş verileri içeren tamponlara işaret eden göstericilerle doldurulur. Bu tamponları serbest bırakmak çağıran tarafın sorumluluğundadır. Yük verisinin 0 bayt olmasına neden olan bir PEM dosyası oluşturmak mümkündür. Bu durumda PEM_read_bio_ex() bir hata kodu döndürecek ancak header bağımsız değişkenini halihazırda serbest bırakılmış bir tampona işaret eden bir gösterici ile dolduracaktır. Çağıran taraf bu tamponu da serbest bırakırsa, bir double free durumu oluşacaktır. Bu durum büyük olasılıkla sistem çökmesine yol açacaktır. Bu açık, ayrıştırma için kötü amaçlı PEM dosyaları sağlayabilen bir saldırgan tarafından hizmet reddi (DoS) saldırısı gerçekleştirmek amacıyla istismar edilebilir. PEM_read_bio() ve PEM_read() fonksiyonları, PEM_read_bio_ex() üzerine kurulmuş basit sarmalayıcılardır ve bu nedenle bu fonksiyonlar da doğrudan etkilenmektedir. Bu fonksiyonlar ayrıca PEM_X509_INFO_read_bio_ex() ve SSL_CTX_use_serverinfo_file() dahil olmak üzere savunmasız olan birçok diğer OpenSSL fonksiyonu tarafından dolaylı olarak çağrılmaktadır. OpenSSL'in bu fonksiyonları kullandığı bazı dahili alanlar, PEM_read_bio_ex() bir hata kodu döndürdüğünde çağıran taraf header bağımsız değişkenini serbest bırakmadığı için savunmasız değildir. Bu konumlar arasında PEM_read_bio_TYPE() fonksiyonlarının yanı sıra OpenSSL 3.0 ile gelen çözücüler yer almaktadır. OpenSSL asn1parse komut satırı uygulaması da bu sorundan etkilenmektedir.
Nasıl düzeltilir
- openssl openssl1.1.1t, 3.0.8 ya da sonraki bir sürüm
- stormshield stormshield_network_security4.3.16, 4.6.3 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| openssl openssl | 1.1.1 ≤ v < 1.1.1t, 3.0.0 ≤ v < 3.0.8 | 1.1.1t, 3.0.8 |
| stormshield stormshield_network_security | 4.0.0 ≤ v < 4.3.16, 4.4.0 ≤ v < 4.6.3 | 4.3.16, 4.6.3 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.