Eksim-kritiese kwesbaarheid onthul

gepubliseer regstellende vrystelling Exim 4.92.2 met die uitskakeling van kritieke kwesbaarhede (CVE-2019-15846), wat in die verstekkonfigurasie kan lei tot die uitvoering van afgeleë kode deur 'n aanvaller met wortelregte. Die probleem verskyn slegs wanneer TLS-ondersteuning geaktiveer is en word uitgebuit deur 'n spesiaal ontwerpte kliëntsertifikaat of gewysigde waarde aan SNI deur te gee. Kwesbaarheid geïdentifiseer deur Qualys.

probleem teenwoordig in die hanteerder om spesiale karakters in die string te ontsnap (string_interpret_escape() vanaf string.c) en word veroorsaak deur die '\'-karakter aan die einde van die string wat voor die nulkarakter ('\0') geïnterpreteer word en dit ontsnap. Wanneer ontsnap word, word die ry '\' en die volgende nul einde-van-lyn-kode as 'n enkele karakter hanteer en die wyser word verskuif na data buite die lyn, wat as 'n voortsetting van die lyn behandel word.

Die kode wat string_interpret_escape() roep, ken 'n buffer toe vir die drein gebaseer op die werklike grootte, en die blootgestelde wyser beland in 'n area buite die buffer se grense. Gevolglik, wanneer 'n invoerstring probeer verwerk word, ontstaan ​​'n situasie wanneer data van 'n area buite die grense van die toegewese buffer gelees word, en 'n poging om 'n onontgonnen string te skryf kan lei tot skryf buite die grense van die buffer.

In die verstekkonfigurasie kan die kwesbaarheid uitgebuit word deur spesiaal ontwerpte data na SNI te stuur wanneer 'n veilige verbinding met die bediener tot stand gebring word. Die probleem kan ook uitgebuit word deur peerdn-waardes te wysig in konfigurasies wat vir kliëntsertifikaat-verifikasie opgestel is of wanneer sertifikate invoer. Aanval via SNI en peerdn is moontlik vanaf vrylating Exim 4.80, waarin die string_unprinting()-funksie gebruik is om die peerdn- en SNI-inhoud te ontdruk.

'n Ontginningsprototipe is voorberei vir 'n aanval via SNI, wat op i386- en amd64-argitekture op Linux-stelsels met Glibc loop. Die ontginning gebruik data-oorleg op die hooparea, wat lei tot die oorskryf van die geheue waarin die loglêernaam gestoor word. Die lêernaam word vervang met "/../../../../../../../../etc/passwd". Vervolgens word die veranderlike met die sender se adres oorgeskryf, wat eers in die log gestoor word, wat jou toelaat om 'n nuwe gebruiker by die stelsel te voeg.

Pakketopdaterings met kwesbaarheidsoplossings wat deur verspreidings vrygestel is Debian, Ubuntu, Fedora, SUSE/openSUSE и FreeBSD. RHEL en CentOS probleem nie onderwerp nie, aangesien Exim nie by hul gewone pakketbewaarplek ingesluit is nie (in WARM vernuwing reeds gevorm, maar vir nou geplaas nie na 'n openbare bewaarplek). In Exim-kode word die probleem opgelos met 'n eenlyner pleister, wat die ontsnappingseffek van die terugskuinsstreep deaktiveer as dit aan die einde van die lyn is.

As 'n oplossing om die kwesbaarheid te blokkeer, kan u TLS-ondersteuning deaktiveer of byvoeg
ACL-afdeling "acl_smtp_mail":

weier voorwaarde = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
weier voorwaarde = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Bron: opennet.ru

Voeg 'n opmerking