probleem
De code die string_interpret_escape() aanroept wijst een buffer toe voor de afvoer op basis van de werkelijke grootte, en de blootgestelde aanwijzer komt terecht in een gebied buiten de grenzen van de buffer. Dienovereenkomstig ontstaat er bij het proberen een invoerreeks te verwerken een situatie bij het lezen van gegevens uit een gebied buiten de grenzen van de toegewezen buffer, en een poging om een reeks zonder escapecodes te schrijven kan leiden tot schrijven buiten de grenzen van de buffer.
In de standaardconfiguratie kan het beveiligingslek worden misbruikt door speciaal ontworpen gegevens naar SNI te verzenden bij het tot stand brengen van een veilige verbinding met de server. Het probleem kan ook worden uitgebuit door peerdn-waarden te wijzigen in configuraties die zijn geconfigureerd voor authenticatie van clientcertificaten of bij het importeren van certificaten. Aanval via SNI en peerdn is mogelijk vanaf de release
Er is een exploit-prototype voorbereid voor een aanval via SNI, draaiend op i386- en amd64-architecturen op Linux-systemen met Glibc. De exploit maakt gebruik van data-overlay op het heap-gebied, wat resulteert in het overschrijven van het geheugen waarin de naam van het logbestand is opgeslagen. De bestandsnaam wordt vervangen door "/../../../../../../../../etc/passwd". Vervolgens wordt de variabele met het adres van de afzender overschreven, die eerst in de log wordt opgeslagen, waardoor u een nieuwe gebruiker aan het systeem kunt toevoegen.
Pakketupdates met oplossingen voor kwetsbaarheden vrijgegeven door distributies
Als tijdelijke oplossing om het beveiligingslek te blokkeren, kunt u TLS-ondersteuning uitschakelen of toevoegen
ACL-sectie “acl_smtp_mail”:
voorwaarde ontkennen = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
voorwaarde ontkennen = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}
Bron: opennet.ru