Vulnerabilità nel patch GSSAPI per OpenSSH, sfruttabile da remoto nella fase precedente all'autenticazione

Nel patch gssapi.patch, utilizzato in molte distribuzioni Linux, che aggiunge il supporto per lo scambio di chiavi basato su GSSAPI in OpenSSH, è stata identificata una vulnerabilità (CVE-2026-3497) che porta a dereferenziazione di puntatori, danneggiamento della memoria e bypass del meccanismo di separazione dei privilegi (Privsep). La vulnerabilità può essere sfruttata da remoto prima dell'autenticazione. Il ricercatore che ha identificato il problema ha dimostrato come provocare un crash del processo inviando un pacchetto di rete modificato a un server SSH. Non si esclude che, oltre a causare un denial of service, esistano opzioni di sfruttamento della vulnerabilità più pericolose.

È interessante notare che in passato gli sviluppatori di OpenSSH hanno rifiutato di includere nel prodotto principale la modifica per supportare GSSAPI a causa di dubbi sulla sua sicurezza. Tuttavia, molte distribuzioni Linux hanno incluso questo patch nei loro pacchetti OpenSSH. Esistono diverse versioni del patch GSSAPI, ma la maggior parte di esse presenta un errore che porta alla vulnerabilità. La correzione è attualmente disponibile solo sotto forma di patch, la cui modifica consiste nella sostituzione della chiamata alla funzione sshpkt_disconnect() con ssh_packet_disconnect() nel file kexgsss.c.

Attualmente, la vulnerabilità è confermata in Debian e Ubuntu. Per le altre distribuzioni, l'applicazione del patch problematico e la sua suscettibilità alla vulnerabilità sono in fase di verifica (SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora). La vulnerabilità si manifesta solo quando nell'impostazione è attivata l'opzione "GSSAPIKeyExchange yes". Anche le opzioni del compilatore utilizzate per costruire il pacchetto nelle distribuzioni influiscono sulla possibilità di sfruttamento.

La causa dell'insorgere della vulnerabilità è un errore nella funzione sshpkt_disconnect(), che impediva al processo di terminarsi dopo la ricezione del messaggio di disconnessione, il che permetteva all'attaccante, durante il processo di negoziazione delle chiavi, di inviare un messaggio GSSAPI non previsto dalla logica di funzionamento. server della tipologia di messaggio GSSAPI. Dopo la ricezione di un messaggio GSSAPI imprevisto, server lo mette in coda senza interrompere l'esecuzione del programma, ma non inizializza le variabili che definiscono i parametri di connessione. In seguito, nel ciclo di elaborazione degli eventi viene eseguito il codice che legge la struttura non inizializzata recv_tok dallo stack (viene lettto i dati rimasti nello stack dalla chiamata precedente della funzione), la invia a un processo privilegiato tramite IPC e poi la passa alla funzione gss_release_buffer(), che può chiamare la funzione free() e liberare la memoria per un puntatore non valido che si riferisce a un'area casuale di memoria.

Fonte: opennet.ru

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