problem
Kod koji poziva string_interpret_escape() dodjeljuje međuspremnik za odvod na temelju stvarne veličine, a izloženi pokazivač završava u području izvan granica međuspremnika. Sukladno tome, kada se pokušava obraditi ulazni niz, dolazi do situacije kada se podaci čitaju iz područja izvan granica dodijeljenog međuspremnika, a pokušaj pisanja neizbjegnutog niza može dovesti do pisanja izvan granica međuspremnika.
U zadanoj konfiguraciji, ranjivost se može iskoristiti slanjem posebno dizajniranih podataka SNI-u prilikom uspostavljanja sigurne veze s poslužiteljem. Problem se također može iskoristiti mijenjanjem peerdn vrijednosti u konfiguracijama konfiguriranim za provjeru autentičnosti certifikata klijenta ili prilikom uvoza certifikata. Napad preko SNI i peerdn je moguć počevši od izdanja
Pripremljen je prototip exploit-a za napad putem SNI-a, koji radi na arhitekturama i386 i amd64 na Linux sustavima s Glibc-om. Iskorištavanje koristi prekrivanje podataka na području gomile, što rezultira prepisivanjem memorije u kojoj je pohranjen naziv datoteke dnevnika. Naziv datoteke zamijenjen je s "/../../../../../../../../etc/passwd". Zatim se prepisuje varijabla s adresom pošiljatelja, koja se prvo sprema u log, što vam omogućuje dodavanje novog korisnika u sustav.
Ažuriranja paketa s ispravcima ranjivosti koje izdaju distribucije
Kao zaobilazno rješenje za blokiranje ranjivosti, možete onemogućiti TLS podršku ili dodati
ACL odjeljak “acl_smtp_mail”:
uvjet odbijanja = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
uvjet odbijanja = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}
Izvor: opennet.ru