Kwesbaarhede in OpenSMTPD wat afgeleë en plaaslike toegang tot wortel toelaat

Qualys Maatskappy geopenbaar nog 'n afgeleë kritieke kwesbaarheid (CVE-2020-8794) in die posbediener Maak SMTPD oop, ontwikkel deur die OpenBSD-projek. Soos die een wat einde Januarie geïdentifiseer is kwesbaarheid, 'n nuwe uitgawe maak dit moontlik om op 'n afstand arbitrêre dop opdragte uit te voer op 'n bediener met root gebruiker regte. Kwesbaarheid uitgeskakel ter sprake OpenSMTPD 6.6.4p1.

Die probleem word veroorsaak deur 'n fout in die kode wat pos aan die afgeleë posbediener aflewer (nie in die kode wat inkomende verbindings hanteer nie). Die aanval is moontlik aan die kliëntkant sowel as aan die bedienerkant. Aan die kliëntkant is die aanval moontlik in die verstekkonfigurasie van OpenSMTPD, waarin OpenSMTPD versoeke slegs op die interne netwerkkoppelvlak (localhost) aanvaar en posboodskappe na eksterne bedieners stuur. Om die kwesbaarheid te ontgin, is dit genoeg dat, tydens die aflewering van 'n brief, OpenSMTPD 'n sessie met 'n e-posbediener wat deur die aanvaller beheer word tot stand bring, of dat die aanvaller in die kliëntverbinding kan inwig (MITM of herleiding tydens aanvalle via DNS of BGP) ).

Vir 'n bedienerkant-aanval moet OpenSMTPD gekonfigureer word om eksterne netwerkversoeke van ander posbedieners te ontvang of derdepartydienste te bedien wat jou toelaat om 'n versoek na 'n arbitrêre e-pos te stuur (byvoorbeeld adresbevestigingsvorms op webwerwe). Byvoorbeeld, 'n aanvaller kan aan die OpenSMTPD-bediener koppel en 'n verkeerde brief stuur (aan 'n nie-bestaande gebruiker), wat sal lei tot 'n reaksie wat 'n brief met 'n foutkode (weiering) na die aanvaller se bediener stuur. 'n Aanvaller kan die kwesbaarheid uitbuit wanneer OpenSMTPD koppel om 'n kennisgewing aan die aanvaller se bediener te lewer. Die dopopdragte wat tydens die aanval ingespuit word, word in 'n lêer geplaas wat met wortelregte uitgevoer word wanneer OpenSMTPD herbegin word, dus moet die aanvaller wag vir OpenSMTPD om te herbegin of 'n ongeluk van OpenSMTPD inisieer om die aanval te voltooi.

Die probleem is teenwoordig in die mta_io()-funksie in die kode vir die ontleding van die multilyn-antwoord wat deur die afgeleë bediener teruggestuur word nadat 'n verbinding tot stand gebring is (byvoorbeeld "250-ENHANCEDSTATUSCODES" en "250 HELP"). OpenSMTPD bereken dat die eerste reël 'n driesyfergetal en teks bevat wat deur 'n "-"-karakter geskei is, en die tweede reël bevat 'n driesyfergetal en teks geskei deur 'n spasie. As 'n driesyfergetal nie gevolg word deur 'n spasie en teks in die tweede reël nie, word die wyser wat gebruik word om die teks te definieer op die greep gestel wat volg op die '\0' karakter en 'n poging word aangewend om die data na die einde te kopieer van die lyn in die buffer.

Op versoek van die OpenBSD-projek is die publikasie van besonderhede oor die uitbuiting van die kwesbaarheid tot 26 Februarie uitgestel om gebruikers in staat te stel om hul stelsels op te dateer. Die probleem is sedert Desember 2015 in die kodebasis aanwesig, maar uitbuiting voor kode-uitvoering met wortelvoorregte is sedert Mei 2018 moontlik. Die navorsers het 'n werkende prototipe van die ontginning voorberei, wat suksesvol getoets is in OpenSMTPD-bou vir OpenBSD 6.6, OpenBSD 5.9, Debian 10, Debian 11 (toets) en Fedora 31.

Ook in OpenSMTPD geïdentifiseer Nog 'n kwesbaarheid (CVE-2020-8793) wat 'n plaaslike gebruiker toelaat om die eerste reël van enige lêer op die stelsel te lees. Byvoorbeeld, jy kan die eerste reël van /etc/master.passwd lees, wat die wortelgebruiker se wagwoordhash bevat. Die kwesbaarheid laat jou ook toe om die hele inhoud van 'n lêer wat deur 'n ander gebruiker besit word, te lees as hierdie lêer in dieselfde lêerstelsel as die /var/spool/smtpd/-gids geleë is. Die probleem is nie ontginbaar op baie Linux-verspreidings waar die waarde van /proc/sys/fs/protected_hardlinks op 1 gestel is nie.

Die probleem is 'n gevolg van onvolledige uitskakeling probleme, uitgespreek tydens die oudit wat in 2015 deur Qualys uitgevoer is. 'n Aanvaller kan uitvoering van sy kode bereik met die regte van die "_smtpq" groep deur die "PATH=." veranderlike in te stel. en die plasing van 'n skrip genaamd makemap in die huidige gids (die smtpctl-nutsding loop makemap sonder om die pad uitdruklik te spesifiseer). Nadat toegang tot die "_smtpq"-groep verkry is, kan die aanvaller dan 'n rastoestand veroorsaak (skep 'n groot lêer in die vanlyn gids en stuur 'n SIGSTOP sein) en, voordat verwerking voltooi is, die lêer in die vanlyn gids vervang met 'n harde simskakel wat na die teikenlêer wys waarvan die inhoud gelees moet word.

Dit is opmerklik dat die kwesbaarheid in Fedora 31 jou toelaat om onmiddellik die voorregte van die wortelgroep te verkry, aangesien die smtpctl-proses toegerus is met die setgid-wortelvlag, in plaas van die setgid smtpq-vlag. Deur toegang tot die wortelgroep te verkry, kan jy die inhoud van /var/lib/sss/mc/passwd oorskryf en volle worteltoegang tot die stelsel kry.

Bron: opennet.ru

Voeg 'n opmerking