Ukázali to bezpečnostní výskumníci spoločnosti Qualys možnosť vykorisťovania zraniteľnosť poštového servera qmail, známe od roku 2005 (CVE-2005-1513), od roku však neopravené qmail tvrdil, že bolo nereálne vytvoriť funkčný exploit ktoré by mohli byť použité na útok na systémy v predvolenej konfigurácii.
Ale zdá sa, že vývojári qmail mýlili sa, pretože Qualys dokázal pripraviť zneužitie ktorý vyvracia tento predpoklad a umožňuje spustenie vzdialeného spustenia kódu na serveri zaslaním špeciálne vytvorenej správy.
Problém je spôsobený pretečením funkcie stralloc_readyplus (), ku ktorému môže dôjsť pri spracovaní veľmi veľkej správy. Pre prevádzku bol potrebný 64-bitový systém s kapacitou virtuálnej pamäte viac ako 4 GB.
V úvodnej analýze zraniteľnosti v roku 2005 Daniel Bernstein tvrdil, že predpoklad v kóde, že veľkosť prideleného poľa sa vždy hodí na 32-bitovú hodnotu, je založený na skutočnosti, že nikto neposkytuje každému procesu gigabajty pamäte. .
Za posledných 15 rokov 64-bitové systémy na serveroch nahradili 32-bitové systémy, množstvo poskytnutej pamäte a šírka pásma siete sa dramaticky zvýšili.
Balíky sprevádzajúce qmail zohľadňovali Bernsteinov komentár a pri spustení procesu qmail-smtpd obmedzili dostupnú pamäť (napríklad v Debiane 10 bol limit stanovený na 7 MB).
Ale Inžinieri spoločnosti Qualys zistili, že to nestačí a okrem qmail-smtpd možno vykonať aj vzdialený útok na proces qmail-local, ktorý zostal pri všetkých testovaných balíkoch neobmedzený.
Ako dôkaz bol pripravený prototyp zneužitia, ktorý je vhodný na útok na balík dodávaný s Debianom programom qmail v predvolenej konfigurácii. Ak chcete organizovať vzdialené vykonávanie kódu počas útoku, server vyžaduje 4 GB voľného miesta na disku a 8 GB RAM.
Exploit umožňuje vykonať akýkoľvek príkaz shell s právami ľubovoľného používateľa v systéme, s výnimkou používateľov root a systému, ktorí nemajú vlastný podadresár v adresári „/ home“
Útok sa uskutočňuje odoslaním veľmi veľkej e-mailovej správy, ktorý obsahuje viac riadkov v záhlaví, približne 4 GB a 576 MB.
Pri spracovaní uvedeného riadku v qmail-local pri pokuse o doručenie správy miestnemu používateľovi dôjde k pretečeniu celého čísla. Celočíselné pretečenie potom vedie k pretečeniu medzipamäte pri kopírovaní údajov a schopnosti prepísať pamäťové stránky kódom libc.
V procese volania qmesearch () v aplikácii qmail-local sa súbor „.qmail-extension“ otvára pomocou funkcie open (), čo vedie k skutočnému spusteniu systému („. Qmail-extension“) ). Ale keďže časť súboru „prípona“ je tvorená na základe adresy príjemcu (napríklad „localuser-extension @ localdomain“), môžu útočníci usporiadať začiatok príkazu zadaním používateľa „localuser-; príkaz; @localdomain »ako príjemca správy.
Analýza kódu tiež odhalila dve chyby v dodatočnej záplate kontrola qmailu, ktorý je súčasťou balíka Debian.
- Prvá chyba zabezpečenia (CVE-2020-3811) umožňuje obísť overenie e-mailových adries a druhá (CVE-2020-3812) vedie k miestnemu úniku informácií.
- Druhú chybu zabezpečenia je možné použiť na overenie prítomnosti súborov a adresárov v systéme vrátane tých, ktoré sú k dispozícii iba pre root (qmail-verify začína s oprávneniami root) prostredníctvom priameho volania na miestny ovládač.
Pre tento balík bola pripravená sada opráv, ktorá eliminuje staré chyby zabezpečenia z roku 2005 pridaním limitov pevnej pamäte do funkčného kódu alloc () a novými problémami v qmaile.
Okrem toho bola osobitne pripravená aktualizovaná verzia opravy qmail. Vývojári verzie notqmail pripravili svoje opravy na blokovanie starých problémov a tiež začali pracovať na odstránení všetkých možných celočíselných pretečení v kóde.
Fuente: https://www.openwall.com/