Sono state rilevate diverse vulnerabilità in GNU Screen che consentivano di ottenere privilegi di root.

vulnerabilità

Pochi giorni fa è stato annunciato informazioni su un audit di sicurezza che ha rivelato cinque vulnerabilità critiche nel popolare multiplexer di terminali Schermo GNU, utilizzato per gestire più sessioni di console su un singolo terminale.

Una di queste (CVE-2025-23395, la vulnerabilità più pericolosa) consente a un aggressore di ottenere privilegi di root sui sistemi interessati (la vulnerabilità riguarda solo la versione 5.0.0 di GNU Screen), comprese distribuzioni come Fedora, Arch Linux, NetBSD, tra le altre. Tuttavia, altre versioni come Debian, Ubuntu e RHEL utilizzano ancora il ramo 4.x, che non è vulnerabile a questo particolare difetto.

CVE-2025-23395: Escalation dei privilegi critici

Si menziona che il problema si verifica quando GNU Screen viene eseguito con il bit radice setuid (caso di Arch e NetBSD), poichée la funzione logfile_reopen() viene eseguita prima di abbassare i privilegi, che consente all'utente di manipolare il registro per scrivere file arbitrari come root. In una tipica fattoria, eL'aggressore elimina il file di registro originale e lo sostituisce con un collegamento simbolico. in un file di sistema. Quando riapri il file, Screen lo scrive con i permessi di root, consentendo l'accesso al contenuto dannoso.

Questo problema riguarda Screen 5.0.0 quando viene eseguito con privilegi setuid-root. La funzione logfile_reopen() non rimuove i privilegi quando si opera su un percorso fornito dall'utente. Ciò consente agli utenti senza privilegi di creare file in posizioni arbitrarie con proprietà root, proprietà del gruppo (reale) dell'utente che esegue l'accesso e modalità file 0644. Tutti i dati scritti nel PTY dello schermo verranno registrati in questo file. Anche i file esistenti possono essere utilizzati per la registrazione in questo modo: i dati verranno aggiunti al file in questione, ma la modalità e la proprietà del file rimarranno invariate.

Questo attacco può portare al controllo totale del sistema se sfruttato correttamente, poiché consente di modificare file sensibili o alterare gli script di avvio. Fedora è parzialmente protetto perché Screen è installato con il bit setgid, limitando la superficie di attacco.

Altre vulnerabilità rilevanti

L'audit, condotto dal team di sicurezza di SUSE Linux, ha inoltre individuato altri importanti fallimenti:

  • CVE-2025-46802: Nelle sessioni multiutente, un aggressore può ottenere autorizzazioni globali di lettura e scrittura su dispositivi TTY come /dev/pts/1, influenzando sia i rami 4.x che 5.x.
  • CVE-2025-46803: Il ramo 5.0 imposta permessi non sicuri (0622) sui dispositivi PTY, consentendo la scrittura da parte di qualsiasi utente.
  • CVE-2025-46804: Una fuga di informazioni consente di dedurre l'esistenza di file o directory tramite messaggi di errore durante la definizione della variabile SCREENDIR.
  • CVE-2025-46805: Una condizione di competizione durante l'invio dei segnali SIGCONT e SIGHUP potrebbe comportare un diniego di servizio.

È stato rilevato anche un uso improprio di strncpy, che può causare arresti anomali durante l'esecuzione di comandi con formattazione speciale, un problema esclusivo della versione 5.0.

Mancanza di manutenzione e supporto da parte di SUSE

La scoperta di queste vulnerabilità ha evidenziato problemi più profondi nella manutenzione di GNU Screen. Secondo il team SUSE, Gli attuali responsabili del progetto non comprendono appieno la base del codice né problemi di sicurezza, che li hanno costretti a sviluppare autonomamente patch per alcuni dei difetti scoperti. Il rapporto è stato inviato agli sviluppatori il 7 febbraio, ma non è stato possibile risolvere l'intero insieme di vulnerabilità entro il periodo di grazia di 90 giorni concordato.

Cosa fare se si utilizza GNU Screen?

Utenti di sistemi che includono Screen 5.0.0 con setuid root dovrebbe aggiornare immediatamente alla versione 5.0.1 o tornare temporaneamente alla versione 4.x se non sono disponibili pacchetti. Come misura di mitigazione, il bit setuid può anche essere rimosso dall'eseguibile Screen:

sudo chmod u-s /usr/bin/screen

Tuttavia, Ciò potrebbe influire sulla funzionalità come la condivisione delle sessioni tra utenti. Infine, vale la pena menzionare che la versione 5.0.1 rilasciata di recente corregge questo e altri bug ed è ora disponibile su distribuzioni come Arch Linux e FreeBSD.

Se si interessati a saperne di più, puoi controllare i dettagli nel file seguente link