Vulnerabilità in glibc che consente l'accesso root al sistema

L'azienda Qualys ha scoperto una vulnerabilità critica (CVE-2023-6246) nella libreria standard C Glibc, che permette l'esecuzione di codice con privilegi elevati tramite manipolazioni nel lancio di applicazioni SUID. I ricercatori sono riusciti a sviluppare un exploit funzionante che consente di ottenere diritti di root attraverso la manipolazione degli argomenti della riga di comando durante l'esecuzione dello strumento su.

La vulnerabilità è causata da un overflow del buffer nella funzione __vsyslog_internal(), utilizzata durante la chiamata delle funzioni syslog() e vsyslog(). Il problema si verifica a causa di un errore nel tentativo di output di un nome dell'applicazione troppo lungo tramite il macro SYSLOG_HEADER. Quando si cerca di espandere il buffer tenendo conto del nome lungo, si verifica un errore, dopo il quale i dati vengono scritti nel vecchio buffer di dimensioni inizialmente più piccole.

Nell'organizzazione di un attacco tramite l'utilità su, l'attaccante può cambiare il nome del processo all'avvio dell'applicazione sostituendo il valore di argv[0], utilizzato per ottenere informazioni sul nome del programma nei log, ottenendo così una sovrascrittura controllata dei dati al di fuori del buffer allocato. Successivamente, il buffer overrun può essere utilizzato per sovrascrivere la struttura nss_module nella libreria nss per creare una libreria condivisa e caricarla con i diritti di root.

Il problema si manifesta a partire dal rilascio di glibc 2.37, pubblicato nell'agosto del 2022 e che include una modifica che gestisce la situazione di tentativi di scrittura di messaggi troppo lunghi. La correzione che introduce la vulnerabilità è stata backportata nella branch glibc 2.36 e nei pacchetti dei distributori con versioni più vecchie di glibc, poiché la correzione segnalata eliminava la vulnerabilità CVE-2022-39046, che portava a una fuga di dati dalla heap. Così è avvenuto che la correzione di una vulnerabilità non pericolosa ha causato il sorgere di un problema critico. È notable che una vulnerabilità simile nella funzione vsyslog() della libreria libc 5.4.3 era stata segnalata già nel 1997.

La vulnerabilità è stata confermata in Debian 12/13, Ubuntu 23.04/23.10 e Fedora 37-39. L'exploit per ottenere i diritti di root da un utente non privilegiato è stato dimostrato in un ambiente Fedora 38 completamente aggiornato con tutti i meccanismi di protezione abilitati nella configurazione predefinita. La vulnerabilità può essere sfruttata solo localmente, poiché richiede la trasmissione di più di 1024 byte attraverso il parametro argv[0] o l'argomento ident nella funzione openlog().

La correzione della vulnerabilità è stata integrata poche ore fa nella base di codice di Glibc e sarà inclusa nell'aggiornamento di domani di Glibc 2.39, insieme alla correzione di altre due vulnerabilità (CVE-2023-6779, CVE-2023-6780) che riguardano anche il codice __vsyslog_internal() e provocano un overflow del buffer. Inoltre, Qualys ha avvertito della rilevazione di un overflow del buffer nell'implementazione della funzione qsort(), che non è stata classificata come vulnerabilità dai sviluppatori di Glibc, poiché lo sfruttamento implica l'uso di una funzione di confronto atipica come argomento nella chiamata a qsort che restituisce la differenza dei parametri confrontati.

Статус устранения уязвимостей в дистрибутивах можно оценить на данных страницах: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware. Протестировать подверженность системы уязвимости можно следующей командой: $ (exec -a «`printf ‘%0128000x’ 1`» /usr/bin/su < /dev/null)
Fonte: opennet.ru

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