Özel olarak tasarlanmış verileri sıkıştırırken zlib'de ortaya çıkan güvenlik açığı

zlib kitaplığında, gelen verilerde özel olarak hazırlanmış bir karakter dizisini sıkıştırmaya çalışırken arabellek taşmasına yol açan bir güvenlik açığı (CVE-2018-25032) belirlendi. Mevcut haliyle araştırmacılar, bir sürecin anormal şekilde sona ermesine neden olma yeteneğini gösterdiler. Sorunun daha ciddi sonuçlara yol açıp açmayacağı henüz araştırılmadı.

Güvenlik açığı zlib 1.2.2.2 sürümünden itibaren ortaya çıkıyor ve aynı zamanda zlib 1.2.11'in mevcut sürümünü de etkiliyor. Güvenlik açığını düzeltmek için 2018 yılında bir düzeltme ekinin önerilmesi dikkat çekicidir, ancak geliştiriciler buna dikkat etmedi ve düzeltici bir sürüm yayınlamadı (zlib kütüphanesi en son 2017'de güncellendi). Ayrıca düzeltme henüz dağıtımların sunduğu paketlere dahil değil. Düzeltmelerin yayınlarını dağıtımlara göre şu sayfalardan takip edebilirsiniz: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD. Zlib-ng kütüphanesi sorundan etkilenmez.

Güvenlik açığı, giriş akışının paketlenecek çok sayıda eşleşme içermesi ve paketlemenin sabit Huffman kodlarına göre uygulandığı durumlarda ortaya çıkar. Belirli koşullar altında sıkıştırılmış sonucun yerleştirildiği ara ara belleğin içeriği, simge frekans tablosunun saklandığı bellekle örtüşebilir. Sonuç olarak hatalı sıkıştırılmış veriler üretilir ve arabellek sınırı dışına yazma nedeniyle çöker.

Güvenlik açığından yalnızca sabit Huffman kodlarına dayalı bir sıkıştırma stratejisi kullanılarak yararlanılabilir. Benzer bir strateji, Z_FIXED seçeneği kodda açıkça etkinleştirildiğinde seçilir (Z_FIXED seçeneği kullanıldığında çökmeye yol açan bir dizi örneği). Koda bakılırsa, veriler için hesaplanan optimal ve statik ağaçların aynı boyuta sahip olması durumunda Z_FIXED stratejisi de otomatik olarak seçilebilir.

Güvenlik açığından yararlanma koşullarının varsayılan Z_DEFAULT_STRATEGY sıkıştırma stratejisi kullanılarak seçilip seçilemeyeceği henüz belli değil. Aksi takdirde güvenlik açığı, Z_FIXED seçeneğini açıkça kullanan belirli belirli sistemlerle sınırlı olacaktır. Eğer öyleyse, zlib kitaplığı fiili bir standart olduğundan ve Linux çekirdeği, OpenSSH, OpenSSL, apache httpd, libpng, FFmpeg, rsync, dpkg dahil olmak üzere birçok popüler projede kullanıldığından, güvenlik açığından kaynaklanan hasar çok önemli olabilir. , rpm, Git, PostgreSQL, MySQL vb.

Kaynak: opennet.ru

Yorum ekle