problema
Kodas, iškviečiantis string_interpret_escape(), priskiria buferį nutekėjimui pagal tikrąjį dydį, o rodoma rodyklė patenka į sritį, esančią už buferio ribų. Atitinkamai, bandant apdoroti įvesties eilutę, susidaro situacija, kai nuskaitomi duomenys iš srities, esančios už paskirstyto buferio ribų, ir bandymas įrašyti neišskiriamą eilutę gali sukelti rašymą už buferio ribų.
Pagal numatytąją konfigūraciją pažeidžiamumas gali būti išnaudotas siunčiant specialiai sukurtus duomenis SNI, kai sukuriamas saugus ryšys su serveriu. Problema taip pat gali būti išnaudota keičiant peerdn reikšmes konfigūracijose, sukonfigūruotose kliento sertifikato autentifikavimui arba importuojant sertifikatus. Ataka per SNI ir peerdn galima nuo išleidimo
Buvo paruoštas išnaudojimo prototipas atakai per SNI, veikiantis i386 ir amd64 architektūrose Linux sistemose su Glibc. Išnaudojimas naudoja duomenų perdangą krūvos srityje, todėl perrašoma atmintis, kurioje saugomas žurnalo failo pavadinimas. Failo pavadinimas pakeičiamas „/../../../../../../../../etc/passwd“. Toliau perrašomas kintamasis su siuntėjo adresu, kuris pirmiausia išsaugomas žurnale, kuris leidžia į sistemą įtraukti naują vartotoją.
Paketų naujinimai su pažeidžiamumo pataisymais, kuriuos išleido platinimai
Norėdami užblokuoti pažeidžiamumą, galite išjungti TLS palaikymą arba pridėti
ACL skyrius „acl_smtp_mail“:
atmesti sąlygą = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
atmesti sąlygą = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}
Šaltinis: opennet.ru