It bedriuw Qualys Company
It probleem wurdt feroarsake troch in brek yn 'e koade dy't e-post leveret oan 'e e-posttsjinner op ôfstân (net yn 'e koade dy't ynkommende ferbiningen behannelet). De oanfal is mooglik sawol oan 'e kliïntkant as oan' e serverkant. Oan 'e kliïntkant is de oanfal mooglik yn' e standertkonfiguraasje fan OpenSMTPD, wêryn OpenSMTPD allinich oanfragen akseptearret op 'e ynterne netwurkynterface (localhost) en stjoert e-postberjochten nei eksterne tsjinners. Om de kwetsberens te eksploitearjen, is it genôch dat OpenSMTPD, tidens de levering fan in brief, in sesje fêststelt mei in e-posttsjinner kontrolearre troch de oanfaller, of dat de oanfaller yn 'e kliïntferbining kin wigge (MITM of trochferwizing by oanfallen fia DNS of BGP) ).
Foar in oanfal oan 'e tsjinner moat OpenSMTPD konfigurearre wurde om eksterne netwurkoanfragen fan oare e-posttsjinners te ûntfangen of tsjinsten fan tredden te tsjinjen wêrmei jo in fersyk kinne stjoere nei in willekeurige e-post (bygelyks adresbefêstigingsformulieren op websiden). Bygelyks, in oanfaller kin ferbine mei de OpenSMTPD-tsjinner en stjoer in ferkearde brief (nei in net-besteande brûker), dy't sil liede ta in antwurd stjoeren fan in brief mei in flaterkoade (bounce) nei de oanfaller syn tsjinner. In oanfaller kin de kwetsberens benutte as OpenSMTPD ferbynt om in notifikaasje te leverjen oan de tsjinner fan de oanfaller. De shell-kommando's dy't yn 'e oanfal ynjeksje wurde pleatst yn in bestân dat wurdt útfierd mei root-rjochten as OpenSMTPD opnij starte, sadat de oanfaller wachtsje moat op OpenSMTPD om opnij te begjinnen of in crash fan OpenSMTPD te begjinnen om de oanfal te foltôgjen.
It probleem is oanwêzich yn 'e funksje mta_io () yn' e koade foar it parsearjen fan 'e multiline-antwurd weromjûn troch de tsjinner op ôfstân nei in ferbining is oprjochte (Bygelyks "250-ENHANCEDSTATUSCODES" en "250 HELP"). OpenSMTPD berekkent dat de earste rigel in trije-sifers nûmer en tekst omfettet skieden troch in "-" karakter, en de twadde rigel befettet in trije-sifers nûmer en tekst skieden troch in spaasje. As in trijesifers nûmer net folge wurdt troch in spaasje en tekst yn 'e twadde rigel, wurdt de oanwizer dy't brûkt wurdt om de tekst te definiearjen ynsteld op de byte nei it '\0' karakter en wurdt besocht de gegevens nei it ein te kopiearjen fan de line yn de buffer.
Op fersyk fan it OpenBSD-projekt is de publikaasje fan details oer de eksploitaasje fan 'e kwetsberens útsteld oant febrewaris 26th om brûkers har systemen te aktualisearjen. It probleem is oanwêzich yn 'e codebase sûnt desimber 2015, mar eksploitaasje foar útfiering fan koade mei root-privileges is sûnt maaie 2018 mooglik. De ûndersikers hawwe in wurkjend prototype makke fan 'e eksploitaasje, dy't mei súkses waard hifke yn OpenSMTPD-builds foar OpenBSD 6.6, OpenBSD 5.9, Debian 10, Debian 11 (testen) en Fedora 31.
Yn OpenSMTPD ek
It probleem is in gefolch fan ûnfolsleine eliminaasje
It is opmerklik dat yn Fedora 31 de kwetsberens jo direkt de privileezjes fan 'e rootgroep kinne krije, om't it smtpctl-proses is foarsjoen fan de setgid-rootflagge, ynstee fan de setgid smtpq-flagge. Troch tagong te krijen ta de root-groep kinne jo de ynhâld fan /var/lib/sss/mc/passwd oerskriuwe en folsleine root tagong krije ta it systeem.
Boarne: opennet.ru