probleem
String_interpret_escape() kutsuv kood eraldab äravoolu jaoks puhvri tegeliku suuruse alusel ja paljastatud osuti jõuab puhvri piiridest väljapoole jäävasse piirkonda. Vastavalt sellele tekib sisendstringi töödelda püüdes olukord, kus andmeid loetakse eraldatud puhvri piiridest väljapoole jäävast piirkonnast ning katse kirjutada paokoodeta string võib viia kirjutamiseni väljapoole puhvri piire.
Vaikekonfiguratsioonis saab haavatavust ära kasutada, saates serveriga turvalise ühenduse loomisel SNI-le spetsiaalselt loodud andmed. Probleemi saab ära kasutada ka peerdn väärtuste muutmisega kliendi sertifikaadi autentimiseks konfigureeritud konfiguratsioonides või sertifikaatide importimisel. Rünnak SNI ja peerdn-i kaudu on võimalik alates vabastamisest
SNI kaudu rünnaku jaoks on ette valmistatud ärakasutamise prototüüp, mis töötab i386 ja amd64 arhitektuuridel Glibc-ga Linuxi süsteemides. Exploit kasutab hunnikualal andmekatet, mille tulemusel kirjutatakse üle mälu, kuhu logifaili nimi on salvestatud. Faili nimi asendatakse "/../../../../../../../../etc/passwd". Järgmisena kirjutatakse üle saatja aadressiga muutuja, mis esmalt salvestatakse logisse, mis võimaldab lisada süsteemi uue kasutaja.
Distributsioonide välja antud haavatavuse parandustega paketivärskendused
Haavatavuse blokeerimiseks saate TLS-i toe keelata või lisada
ACL-i jaotis "acl_smtp_mail":
keela tingimus = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
keelamise tingimus = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}
Allikas: opennet.ru