Details van kritieke kwetsbaarheid in Exim onthuld

gepubliceerd corrigerende uitgave Examen 4.92.2 met de eliminatie van kritiek kwetsbaarheden (CVE-2019-15846), wat in de standaardconfiguratie kan leiden tot uitvoering van externe code door een aanvaller met rootrechten. Het probleem doet zich alleen voor als TLS-ondersteuning is ingeschakeld en wordt uitgebuit door een speciaal ontworpen clientcertificaat of gewijzigde waarde door te geven aan SNI. Kwetsbaarheid geïdentificeerd van Qualys.

probleem Cadeau in de handler voor het escapen van speciale tekens in de string (string_interpret_escape() uit string.c) en wordt veroorzaakt doordat het teken '\' aan het einde van de string wordt geïnterpreteerd vóór het nulteken ('\0') en daaraan een escape uitvoert. Bij het ontsnappen worden de reeks '\' en de volgende nulcode aan het einde van de regel behandeld als één teken en wordt de aanwijzer verplaatst naar gegevens buiten de regel, die worden behandeld als een voortzetting van de regel.

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 Examen 4.80, waarin de functie string_unprinting() werd gebruikt om de peerdn- en SNI-inhoud ongedaan te maken.

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 Debian, Ubuntu, Fedora, SUSE/openSUSE и FreeBSD. RHEL- en CentOS-probleem niet vatbaar, aangezien Exim niet is opgenomen in hun reguliere pakketrepository (in EPEL обновление reeds gevormd, maar voor nu niet geplaatst naar een openbare opslagplaats). In Exim-code wordt het probleem opgelost met een oneliner lapje, waardoor het ontsnappingseffect van de backslash wordt uitgeschakeld als deze zich aan het einde van de regel bevindt.

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

Voeg een reactie