Qualys Company
De Problem gëtt duerch e Feeler am Code verursaacht, deen E-Mail un de Remote-Mail-Server liwwert (net am Code deen erakommen Verbindungen handhabt). Den Attack ass méiglech souwuel op der Client Säit wéi och op der Server Säit. Op der Client Säit ass d'Attack méiglech an der Standardkonfiguratioun vun OpenSMTPD, an där OpenSMTPD Ufroen nëmmen op der interner Netzwierkinterface (localhost) akzeptéiert a Mail Messagen un extern Serveren schéckt. Fir d'Schwachheet auszenotzen, ass et genuch datt, während der Liwwerung vun engem Bréif, OpenSMTPD eng Sessioun mat engem Mail-Server, deen vum Ugräifer kontrolléiert gëtt, opstellt, oder datt den Ugräifer an d'Clientverbindung (MITM oder Viruleedung während Attacken iwwer DNS oder BGP) keile kann. ).
Fir e Server-Säit Attack, OpenSMTPD muss konfiguréiert ginn fir extern Reseau Ufroe vun anere Mail Serveren ze kréien oder drëtt-Partei Servicer déngen, datt Dir eng Demande un eng arbiträr E-Mail schécken erlaabt (Zum Beispill, Adress Confirmatiouns Formen op Websäite). Zum Beispill kann en Ugräifer mam OpenSMTPD-Server verbannen an e falsche Bréif schécken (un en net existente Benotzer), wat zu enger Äntwert féiert, déi e Bréif mat engem Fehlercode (Bounce) op den Server vum Ugräifer schéckt. En Ugräifer kann d'Schwachheet ausnotzen wann OpenSMTPD verbënnt fir eng Notifikatioun un den Server vum Ugräifer ze liwweren. D'Shellbefehle, déi während der Attack injizéiert sinn, ginn an enger Datei plazéiert, déi mat Rootrechter ausgefouert gëtt wann OpenSMTPD nei gestart gëtt, sou datt den Ugräifer op OpenSMTPD waart fir nei ze starten oder e Crash vun OpenSMTPD ze initiéieren fir den Attack ofzeschléissen.
De Problem ass an der mta_io () Funktioun am Code präsent fir d'Multiline-Äntwert ze analyséieren, déi vum Fernserver zréckkomm ass nodeems eng Verbindung etabléiert ass (zum Beispill "250-ENHANCEDSTATUSCODES" an "250 HELP"). OpenSMTPD berechent datt déi éischt Zeil eng dräi-Zifferen Nummer an Text enthält, getrennt vun engem "-" Charakter, an déi zweet Zeil enthält eng dräi-Zifferen Nummer an Text getrennt vun engem Raum. Wann eng dräi-Zifferen Nummer net vun engem Raum an Text an der zweeter Zeil gefollegt ass, gëtt de Pointer benotzt fir den Text ze definéieren op de Byte no dem '\0' Charakter gesat an et gëtt probéiert d'Donnéeën nom Enn ze kopéieren vun der Linn an de Puffer.
Op Ufro vum OpenBSD-Projet ass d'Publikatioun vun Detailer iwwer d'Ausbeutung vun der Schwachstelle bis de 26. Februar verspéit ginn, fir datt d'Benotzer hir Systemer aktualiséieren. De Problem ass zënter Dezember 2015 an der Codebase präsent, awer d'Ausbeutung virum Code Ausféierung mat Root Privilegien ass zënter Mee 2018 méiglech. D'Fuerscher hunn e funktionnéierende Prototyp vum Exploit virbereet, deen erfollegräich getest gouf an OpenSMTPD Builds fir OpenBSD 6.6, OpenBSD 5.9, Debian 10, Debian 11 (Test) a Fedora 31.
An OpenSMTPD och
De Problem ass eng Konsequenz vun onkomplett Eliminatioun
Et ass bemierkenswäert datt am Fedora 31 d'Schwachheet Iech erlaabt direkt d'Privilegien vun der Root-Grupp ze kréien, well de smtpctl-Prozess mam Setgid Root-Fändel ausgestatt ass, anstatt dem Setgid smtpq Fändel. Andeems Dir Zougang zu der Root-Grupp kritt, kënnt Dir den Inhalt vun /var/lib/sss/mc/passwd iwwerschreiwe a voll Root-Zougang zum System kréien.
Source: opennet.ru