Vulnerabilità nei pacchetti OpenSSH nel RHEL 9, che consente l'esecuzione remota di codice

Durante l'analisi della vulnerabilità critica di OpenSSH scoperta la settimana scorsa, è stata individuata un'altra vulnerabilità simile (CVE-2024-6409) che consente l'esecuzione remota di codice senza autenticazione. Questa nuova vulnerabilità è meno pericolosa della precedente poiché si manifesta dopo il ripristino dei privilegi in un processo figlio avviato dal server SSH. La vulnerabilità è presente nei pacchetti openssh della distribuzione Red Hat Enterprise Linux 9, basata su una versione di OpenSSH 8.7 pubblicata nel 2021. Il problema interessa anche i pacchetti per Fedora Linux 36 e 37, basati sulle versioni OpenSSH 8.7 e 8.8.

In sostanza, la vulnerabilità è analoga al problema precedente ed è causata anche da una condizione di gara nel gestore dell'interruzione SIGALRM, che si verifica a causa dell'esecuzione di funzioni non progettate per l'invocazione in modalità asincrona dai gestori di segnali. Il gestore si attiva quando si verifica un timeout, definito attraverso il parametro LoginGraceTime, interrompendo l'esecuzione corrente del codice. L'uso di funzioni non progettate per l'esecuzione asincrona, che utilizzano allocazione dinamica della memoria, come syslog(), può causare danni alle strutture interne di malloc al verificarsi del SIGALRM durante l'esecuzione di un determinato codice.

La nuova vulnerabilità si distingue per il fatto che la condizione di gara si verifica a causa della chiamata nel gestore di segnali grace_alarm_handler() della funzione cleanup_exit(). Nella base di codice principale di OpenSSH, questa funzione può essere utilizzata nel codice eseguito in modo asincrono, ma nei pacchetti per RHEL 9 e Fedora è stato applicato un ulteriore patch che aggiunge nella cleanup_exit() una chiamata a una funzione per generare eventi di audit, progettata per essere utilizzata nei gestori di segnali.

Questo patch è stato utilizzato in RHEL 9 e nelle distribuzioni derivate nei pacchetti basati su OpenSSH 8.7p1. Negli attuali rilasci di Fedora, il problema non si manifesta, poiché a partire da Fedora 38 la distribuzione è passata a una versione più recente di OpenSSH senza modifiche a cleanup_exit(). A differenza della vulnerabilità precedente, non è possibile utilizzare un workaround per bloccare il nuovo problema basato sull'uso dell'opzione «-e» in sshd, che disabilita l'output del log tramite syslog. Tuttavia, per bloccare la vulnerabilità in sshd_config, è possibile impostare il parametro «LoginGraceTime=0».

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