E’ stata rilevata una nuova vulnerabilità, monitorsta con il CVE-2023-38408 su OpenSSH che potrebbe consentire l’iniezione di comandi remoti su sistemi Linux in determinate circostanze. Il difetto interessa tutte le versioni di OpenSSH fino alla 9.3p2 e potrebbe consentire a un utente malintenzionato remoto di eseguire comandi arbitrari sull’agent ssh dei sistemi vulnerabili.
Affinché la vulnerabilità venga sfruttata con successo, le librerie specifiche sul sistema della vittima e l’agent di autenticazione SSH devono essere inoltrate a un sistema controllato dall’aggressore.
L’SSH-Agent è un programma ampiamente utilizzato che detiene le chiavi private per l’autenticazione con chiave pubblica, fornendo un modo sicuro per accedere a macchine remote utilizzando SSH.
È anche considerato un modo sicuro e alternativo per l’accesso con password, che è considerato pericoloso soprattutto per quanto riguarda l’accesso ai server di esercizio.
L’aggressore può manipolare l’agent SSH attraverso un programma in background che archivia le chiavi utente in memoria e abilita gli accessi remoti senza la necessità di reinserire la passphrase, caricando e scaricando le librerie condivise tramite l’agent ssh.
Una delle sue funzionalità è l’inoltro dell’agent che consente agli utenti di accedere al proprio agent SSH locale da server remoti. Tuttavia, una recente ricerca di Qualys ha fatto luce su una potenziale vulnerabilità di sicurezza ad essa correlata che ha portato all’esecuzione di codice in modalità remota nella macchina del client.
Secondo i ricercatori di Qualys, la vulnerabilità risiede nel modo in cui l’agent SSH gestisce le librerie condivise inoltrate. Quando l’agent SSH viene compilato con ENABLE_PKCS11 (la configurazione predefinita), inoltra le librerie condivise dalla workstation locale dell’utente al server remoto.
Queste librerie vengono caricate (dlopen()) e immediatamente scaricate (dlclose()) sulla workstation dell’utente.
Il problema sorge perché alcune librerie condivise hanno effetti collaterali quando vengono caricate e scaricate, che possono essere sfruttate da un utente malintenzionato che ottiene l’accesso al server remoto a cui viene inoltrato l’agent SSH.