SÄrbarheter i OpenSMTPD som möjliggör fjÀrr- och lokal root-Ätkomst

Företaget Qualys har identifierat en annan kritisk sÄrbarhet (CVE-2020-8794) i e-postservern OpenSMTPD, som utvecklas av projektet OpenBSD. Precis som den som upptÀcktes i slutet av januari sÄrbarhet, ger det nya problemet möjlighet att fjÀrrköra godtyckliga shell-kommandon pÄ servern med root-anvÀndarens rÀttigheter. SÄrbarheten har ÄtgÀrdats i utgÄvan OpenSMTPD 6.6.4p1.

Problemet orsakas av ett fel i koden som hanterar leverans av e-post till en extern e-postserver (inte i koden som hanterar inkommande anslutningar). Attacken Àr möjlig bÄde pÄ klientsidan och serversidan. PÄ klientsidan Àr attacken möjlig i standardkonfigurationen av OpenSMTPD, dÀr OpenSMTPD accepterar förfrÄgningar endast pÄ det interna nÀtverksgrÀnssnittet (localhost) och skickar e-postmeddelanden till externa servrar. För att utnyttja sÄrbarheten rÀcker det att OpenSMTPD under leveransen av ett meddelande upprÀttar en session med en e-postserver som kontrolleras av angriparen, eller att angriparen kan infiltrera anslutningen pÄ klientsidan (MITM eller omdirigering under attacker via DNS eller BGP).

För en attack pÄ serversidan mÄste OpenSMTPD konfigureras för att ta emot externa nÀtverksförfrÄgningar frÄn andra e-postservrar eller hantera extern tjÀnster som tillÄter att man skickar en förfrÄgan till en godtycklig e-postadress (till exempel bekrÀftelseformulÀr pÄ webbplatser). Till exempel kan en angripare ansluta till OpenSMTPD-servern och skicka ett felaktigt meddelande (till en icke-existerande anvÀndare), vilket leder till att ett svarsmail med felkod (bounce) skickas till angriparens server. Angriparen kan utnyttja sÄrbarheten nÀr OpenSMTPD ansluter för att leverera en avisering till angriparens server. De shell-kommandon som injiceras under attacken placeras i en fil som körs med root-rÀttigheter vid omstart av OpenSMTPD, sÄ angriparen mÄste vÀnta pÄ att OpenSMTPD ska starta om eller initiera en krasch av OpenSMTPD.

Problemet finns i funktionen mta_io() i koden för att tolka svar med flera rader som returneras av den fjÀrrservern efter att en anslutning har upprÀttats (t.ex. "250-ENHANCEDSTATUSCODES" och "250 HELP"). I OpenSMTPD förutsÀtts det att den första raden innehÄller ett tresiffrigt nummer och text Ätskilda av tecknet "-", och den andra raden ett tresiffrigt nummer och text Ätskilda av ett mellanslag. Om det efter det tresiffriga numret i den andra raden inte följer ett mellanslag och text, sÀtts pekaren som anvÀnds för att bestÀmma texten pÄ bytena efter tecknet '\0' och ett försök görs att kopiera data till bufferten, som följer efter radens slut.

PÄ begÀran av OpenBSD-projektet har publiceringen av detaljerna kring sÄrbarheten fördröjts till den 26 februari för att ge anvÀndarna möjlighet att uppdatera sina system. Problemet har funnits i kodbasen sedan december 2015, men exploateringen för att exekvera kod med root-rÀttigheter har varit möjlig sedan maj 2018. Forskare har tagit fram en fungerande prototyp av ett exploit, som har testats framgÄngsrikt i versionerna av OpenSMTPD för OpenBSD 6.6, OpenBSD 5.9, Debian 10, Debian 11 (testing) och Fedora 31.

I OpenSMTPD finns ocksÄ upptÀcktes en annan sÄrbarhet (CVE-2020-8793), som gör det möjligt för en lokal anvÀndare att lÀsa den första raden i vilken fil som helst i systemet. Till exempel kan den första raden av /etc/master.passwd lÀsas, dÀr hash-vÀrdet av root-anvÀndarens lösenord finns. SÄrbarheten gör det ocksÄ möjligt att lÀsa hela innehÄllet i en fil som tillhör en annan anvÀndare, om den filen ligger pÄ samma filsystem som katalogen /var/spool/smtpd/. Problemet Àr inte exploaterbart i mÄnga Linux-distributioner dÀr vÀrdet pÄ /proc/sys/fs/protected_hardlinks Àr satt till 1.

Problemet Àr en följd av ofullstÀndig ÄtgÀrd av problem, som framkom i en revision genomförd av Qualys 2015. En angripare kan Ästadkomma körning av sin kod med rÀttigheter för gruppen "_smtpq" genom att sÀtta variabeln "PATH=." och placera ett skript med namnet makemap i den aktuella katalogen (verktyget smtpctl kör makemap utan att specificera sökvÀgen explicit). NÀr angriparen har fÄtt tillgÄng till gruppen "_smtpq" kan hen dÄ Ästadkomma ett tÀvlingsförhÄllande (skapa en stor fil i offline-katalogen och skicka signalen SIGSTOP) och, innan bearbetningen Àr klar, byta ut filen i offline-katalogen mot en hÄrd symbolisk lÀnk som pekar pÄ den mÄlfil vars innehÄll som ska lÀsas.

Det Àr vÀrt att notera att i Fedora 31 möjliggör en sÄrbarhet att omedelbart fÄ privilegier för gruppen root, eftersom processen smtpctl Àr försedd med setgid-rootflaggan istÀllet för setgid-smtpq. Med tillgÄng till gruppen root kan man skriva över innehÄllet i /var/lib/sss/mc/passwd och fÄ fullstÀndig root-Ätkomst i systemet.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster