Vulnerabilità sfruttabile remotamente in u servitore di mail qmail

Circatori di sicurezza di Qualys mostru uppurtunità sfruttamentu vulnerabilità in u servitore di mail qmail, famosu torna in u 2005 (CVE-2005-1513), ma ùn restava micca patched perchè l'autore di qmail susteneva chì ùn era micca realisticu di creà un sfruttamentu di travagliu chì puderia esse usatu per attaccà i sistemi in a cunfigurazione predeterminata. Qualys hà sappiutu preparà un sfruttamentu chì refuta questa supposizione è permette di inizià l'esekzione di codice remota in u servitore mandendu un missaghju apposta.

U prublema hè causatu da un overflow integer in a funzione stralloc_readyplus (), chì pò accade quandu si tratta un missaghju assai grande. L'operazione necessitava un sistema di 64-bit cù più di 4GB di memoria virtuale. Quandu a vulnerabilità hè stata analizata in u 2005, Daniel J. Bernstein hà sustinutu chì l'assunzione in u codice chì a dimensione di l'array assignata hè sempre in u valore di 32-bit hè basatu annantu à u fattu chì nimu ùn furnisce gigabytes di memoria à ogni prucessu. In l'ultimi 15 anni, i sistemi 64-bit in i servitori anu rimpiazzatu i sistemi 32-bit, è a quantità di memoria furnita è a larghezza di banda di a rete anu aumentatu dramaticamente.

I mantenitori di u pacchettu qmail anu pigliatu a nota di Bernstein in contu è limitanu a memoria dispunibule quandu principia u prucessu qmail-smtpd (per esempiu, in Debian 10 u limitu hè stabilitu à 7MB). Ma l'ingegneri di Qualys anu truvatu chì questu ùn hè micca abbastanza è, in più di qmail-smtpd, un attaccu remota pò esse realizatu nantu à u prucessu qmail-local, chì restava senza restrizioni in tutti i pacchetti pruvati. Comu prova, un prototipu di sfruttamentu hè statu preparatu chì era adattatu per attaccà u pacchettu Debian cù qmail in a cunfigurazione predeterminata.
Per urganizà l'esekzione di codice remota durante un attaccu, u servitore necessita 4GB di spaziu di discu liberu è 8GB di RAM.
U sfruttamentu permette di eseguisce qualsiasi cumandamenti di shell cù i diritti di qualsiasi utilizatore in u sistema, eccettu per l'utilizatori di root è di u sistema chì ùn anu micca u so propiu subdirectory in u cartulare "/home" (u prucessu qmail-local hè lanciatu cù i diritti). di l'utilizatore locale à quale a consegna hè fatta).

L'attaccu hè realizatu
attraversu l'inviu di un missaghju di mail assai grande, cumprese parechje linee d'intestazione, chì misura circa 4GB è 576MB. Trattamentu di una tale stringa in qmail-local risulta in un overflow integer quandu si prova di trasmette un missaghju à l'utilizatore locale. Un overflow integer allora porta à un buffer overflow quandu copia dati è a pussibilità di sovrascrive e pagine di memoria cù u codice libc. Manipulendu u layout di e dati trasmessi, hè ancu pussibule di riscrive l'indirizzu di a funzione "open()", rimpiazzà cù l'indirizzu di a funzione "system()".

Dopu, in u prucessu di chjamà qmesearch () in qmail-local, u schedariu ".qmail-extension" hè apertu à traversu a funzione open (), chì porta à l'esekzione attuale di a funzione.
system(".qmail-extension"). Ma siccomu a parte "estensione" di u schedariu hè generata basatu annantu à l'indirizzu di u destinatariu (per esempiu, "localuser-extension@localdomain"), l'attaccanti ponu organizà u cumandamentu per esse mandatu per eseguisce specificendu l'utilizatore "localuser-;command". ;@localdomain" cum'è u destinatariu di u messagiu.

Durante l'analisi di codice, duie vulnerabilità sò state identificate ancu in u patch qmail-verify supplementu, chì face parte di u pacchettu per Debian. Prima vulnerabilità (CVE-2020-3811) permette di passà a verificazione di l'indirizzu email, è a seconda (CVE-2020-3812) porta à a fuga di l'infurmazioni lucali. In particulare, a prima vulnerabilità permette di passà a verificazione di a correttezza di l'indirizzu utilizatu in u sfruttamentu per mandà un cumandamentu (a verificazione ùn viaghja micca per l'indirizzi senza domini, cum'è "localuser-;command;"). A seconda vulnerabilità pò esse usata per verificà a presenza di schedari è cartulari nantu à u sistema, cumpresi quelli chì sò accessibili solu per root (qmail-verify runs with root right), attraversu una chjama diretta à u gestore locale.

Per trattà u prublema, Bernstein hà cunsigliatu di eseguisce i prucessi qmail cù un limitu tutale di memoria dispunibule ("softlimit -m12345678"), in quale casu u prublema hè bluccatu. Comu un metudu alternativu di prutezzione, limità a dimensione massima di u missaghju processatu attraversu u schedariu "control / databytes" hè ancu mintuatu (per difettu ùn hè micca creatu cù paràmetri predeterminati, qmail resta vulnerabile). Inoltre, "control / databytes" ùn prutege micca contru l'attacchi lucali da l'utilizatori di u sistema, postu chì u limitu hè solu cunsideratu in qmail-smtpd.

U prublema afecta u pacchettu netqmail, inclusu in i repositori Debian. Un inseme di patches hè statu preparatu per questu pacchettu, eliminendu e vechji vulnerabilità da u 2005 (aghjunghjendu limiti di memoria dura à u codice di funzione alloc()) è novi prublemi in qmail-verify. Separatamente preparatu versione aghjurnata di u patch qmail-verify. Sviluppatori rami notqmail preparatu i so propii patch per bluccà i vechji prublemi, è ancu cuminciatu à travaglià per eliminà tutti i pussibuli integer overflows in u codice.

Source: opennet.ru

Add a comment