Vulnerabilità in ld.so OpenBSD

Loader dinamico ld.so, che fa parte di OpenBSD, in determinate condizioni può per SUID/SGID-applicazioni lasciare la variabile d'ambiente LD_LIBRARY_PATH e in questo modo consentire il caricamento di codice di terze parti nel contesto di un processo eseguito con privilegi elevati. Le patch correttive per la vulnerabilità sono disponibili per le versioni 6.5 e 6.6. Patch binarie (syspatch) per le piattaforme amd64, i386 e arm64 sono già state messe in produzione e dovrebbero essere disponibili per il download al momento della pubblicazione di questa notizia.

Il problema: durante l'esecuzione, ld.so prima estrae dal ambiente il valore della variabile LD_LIBRARY_PATH, e tramite la funzione _dl_split_path() lo trasforma in un array di stringhe — percorsi a directory. Se in seguito si scopre che il processo corrente è eseguito da un'applicazione SUID/SGID, l'array creato e, di fatto, la variabile LD_LIBRARY_PATH vengono svuotati. Inoltre, se durante l'esecuzione di _dl_split_path() si verifica una carenza di memoria (cosa difficile a causa del limite esplicito sulla dimensione delle variabili d'ambiente di 256 kByte, ma teoricamente possibile), la variabile _dl_libpath riceverà il valore NULL, e il successivo controllo di questo valore farà saltare la chiamata a _dl_unsetenv(«LD_LIBRARY_PATH»).

La vulnerabilità è stata scoperta dagli esperti Qualys, così come diverse problematiche precedentemente segnalate. I ricercatori di sicurezza che hanno identificato la vulnerabilità hanno notato la rapidità nella risoluzione del problema: la patch è stata preparata e gli aggiornamenti rilasciati entro tre ore dalla notifica ricevuta dal progetto OpenBSD.

Integrazione: il problema ha ricevuto il numero CVE-2019-19726. È stato fatto un annuncio ufficialesulla mailing list oss-security, inclusivo di un prototipo di exploit che funziona su OpenBSD 6.6, 6.5, 6.2 e 6.1 su architetture
amd64 e i386 (l'exploit può essere adattato anche per altre architetture).
Il problema è sfruttabile nell'installazione predefinita e consente a un utente locale non privilegiato di eseguire codice con diritti di root mediante la sostituzione delle librerie durante l'esecuzione degli strumenti suid chpass o passwd. Per creare le condizioni necessarie allo sfruttamento della carenza di memoria, si utilizza l'impostazione del limite RLIMIT_DATA tramite setrlimit.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS - ProHoster