Sorun
string_interpret_escape() öğesini çağıran kod, gerçek boyuta dayalı olarak drenaj için bir arabellek ayırır ve açığa çıkan işaretçi, arabelleğin sınırlarının dışındaki bir alanda sona erer. Buna göre, bir giriş dizesini işlemeye çalışırken, tahsis edilen arabelleğin sınırları dışındaki bir alandan veri okurken bir durum ortaya çıkar ve çıkış yapılmamış bir dize yazma girişimi, arabellek sınırlarının ötesine yazmaya yol açabilir.
Varsayılan yapılandırmada, sunucuyla güvenli bağlantı kurulurken SNI'ya özel tasarlanmış veriler gönderilerek bu güvenlik açığından yararlanılabilir. İstemci sertifikası kimlik doğrulaması için yapılandırılmış yapılandırmalarda veya sertifikalar içe aktarılırken eşdüzey değerleri değiştirilerek de bu sorundan yararlanılabilir. Sürümden itibaren SNI ve Peedn yoluyla saldırı mümkündür
Glibc ile Linux sistemlerde i386 ve amd64 mimarileri üzerinde çalışan, SNI üzerinden yapılacak saldırı için bir istismar prototipi hazırlandı. Bu istismar, yığın alanındaki veri katmanını kullanarak günlük dosyası adının saklandığı belleğin üzerine yazılmasına neden olur. Dosya adı "/../../../../../../../../etc/passwd" ile değiştirilir. Daha sonra, gönderenin adresini içeren değişkenin üzerine yazılır; bu, ilk önce günlüğe kaydedilir ve bu, sisteme yeni bir kullanıcı eklemenizi sağlar.
Dağıtımlar tarafından yayımlanan güvenlik açığı düzeltmelerini içeren paket güncellemeleri
Güvenlik açığını engellemek için geçici bir çözüm olarak TLS desteğini devre dışı bırakabilir veya
EKL bölümü “acl_smtp_mail”:
reddetme koşulu = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
reddetme koşulu = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}
Kaynak: opennet.ru