Qualys Company
Problem je uzrokovan greškom u kodu koji isporučuje poštu udaljenom serveru pošte (ne u kodu koji upravlja dolaznim vezama). Napad je moguć i na strani klijenta i na strani servera. Na strani klijenta, napad je moguć u podrazumevanoj konfiguraciji OpenSMTPD, u kojoj OpenSMTPD prihvata zahteve samo na internom mrežnom interfejsu (localhost) i šalje mail poruke na spoljne servere. Da bi se iskoristila ranjivost, dovoljno je da, tokom dostave pisma, OpenSMTPD uspostavi sesiju sa serverom pošte koji kontroliše napadač, ili da se napadač može uglaviti u klijentsku vezu (MITM ili preusmeravanje tokom napada preko DNS-a ili BGP-a). ).
Za napad na strani servera, OpenSMTPD mora biti konfigurisan da prima zahtjeve vanjske mreže od drugih servera pošte ili da služi uslugama trećih strana koje vam omogućavaju da pošaljete zahtjev na proizvoljnu e-poštu (na primjer, obrasci za potvrdu adrese na web stranicama). Na primjer, napadač se može povezati na OpenSMTPD server i poslati pogrešno pismo (nepostojećem korisniku), što će dovesti do toga da odgovor pošalje pismo sa kodom greške (bounce) na server napadača. Napadač može iskoristiti ranjivost kada se OpenSMTPD poveže kako bi dostavio obavještenje serveru napadača. Komande ljuske koje su ubačene tokom napada smeštene su u datoteku koja se izvršava sa root pravima kada se OpenSMTPD ponovo pokrene, tako da napadač mora da sačeka da se OpenSMTPD ponovo pokrene ili da pokrene pad OpenSMTPD da bi završio napad.
Problem je prisutan u funkciji mta_io() u kodu za raščlanjivanje višelinijskog odgovora koji vraća udaljeni server nakon uspostavljanja veze (na primjer, "250-ENHANCEDSTATUSCODES" i "250 HELP"). OpenSMTPD izračunava da prvi red sadrži trocifreni broj i tekst odvojen znakom „-“, a drugi red sadrži trocifreni broj i tekst odvojen razmakom. Ako trocifreni broj nije praćen razmakom i tekstom u drugom redu, pokazivač koji se koristi za definiranje teksta postavlja se na bajt nakon znaka '\0' i pokušava se kopirati podatak nakon kraja linije u bafer.
Na zahtjev OpenBSD projekta, objavljivanje detalja o iskorištavanju ranjivosti je odgođeno do 26. februara kako bi se omogućilo korisnicima da ažuriraju svoje sisteme. Problem je prisutan u bazi koda od decembra 2015. godine, ali je eksploatacija prije izvršavanja koda sa root privilegijama moguća od maja 2018. godine. Istraživači su pripremili radni prototip eksploatacije, koji je uspješno testiran u OpenSMTPD verzijama za OpenBSD 6.6, OpenBSD 5.9, Debian 10, Debian 11 (testiranje) i Fedora 31.
U OpenSMTPD također
Problem je posljedica nepotpune eliminacije
Važno je napomenuti da vam u Fedori 31 ranjivost omogućava da odmah dobijete privilegije root grupe, budući da je proces smtpctl opremljen root zastavicom setgid, umjesto zastavom setgid smtpq. Dobijanjem pristupa root grupi, možete prepisati sadržaj /var/lib/sss/mc/passwd i dobiti potpuni root pristup sistemu.
izvor: opennet.ru