Passa al contenuto principale Salta alla ricerca Passa alla navigazione principale
Menu
Importante Cybersecurity Punteggio: 8/10

Falla nel kernel Linux: race condition consente lettura di file altrui

Una vulnerabilità nella gestione della memoria del kernel Linux permette a utenti locali di leggere file protetti come chiavi SSH o /etc/shadow. Una patch è già disponibile.

Cosa è successo?

Un ricercatore di sicurezza sotto lo pseudonimo _SiCK ha pubblicato su Github diversi exploit proof-of-concept che sfruttano una vulnerabilità nella gestione della memoria e dei processi del kernel Linux. La falla consente a utenti locali privi di privilegi particolari di leggere, a determinate condizioni, file che dovrebbero essere accessibili esclusivamente all'utente root. Si tratta già della quarta vulnerabilità di sicurezza in pochi giorni che consente agli utenti Linux di ottenere un'escalation dei privilegi.

L'esempio PoC con le conseguenze più gravi si chiama ssh-keysign-pwn. Esso legge la chiave privata SSH della macchina, un file che in circostanze normali è accessibile esclusivamente all'utente root. Un altro esempio sfrutta il programma "chage" per leggere il file delle password /etc/shadow durante la sua esecuzione.

I dettagli

La causa della vulnerabilità risiede in profondità nel kernel: la funzione ptrace_may_access() fallisce in modo troppo permissivo (il cosiddetto "fail open") nei processi che si trovano attualmente in fase di terminazione. Se un aggressore vince una race condition, ovvero una competizione tra più processi in esecuzione simultanea, può accedere, nonostante l'assenza di autorizzazioni, a file che il processo in fase di terminazione aveva precedentemente aperto. Sono quindi potenzialmente interessati tutti i file aperti da programmi con privilegi root (setuid root), come /etc/shadow o /etc/ssh/ssh_host_key.

L'errore è stato scoperto dall'azienda di sicurezza Qualys. Il responsabile di Linux, Linus Torvalds, lo ha corretto giovedì nel tardo pomeriggio. Poco dopo, il fondatore di grsecurity, Brad Spengler, ha segnalato l'errore con una breve analisi sul social network X, il che a sua volta ha stimolato l'ambizione di _SiCK a sviluppare exploit propri. Al momento non è ancora disponibile un identificativo CVE ufficiale per la vulnerabilità.

È degno di nota il fatto che l'errore fosse già stato notato diversi anni fa dall'esperto di sicurezza di Google Jann Horn, che all'epoca aveva già proposto una soluzione, mai però implementata. Il kernel Linux 7.0.8 contiene ora esclusivamente la correzione per la vulnerabilità sfruttata da ssh-keysign-pwn. Il responsabile del kernel Greg Kroah-Hartman ha commentato la situazione sul Fediverse con un'osservazione autoironica su un "grande pulsante" sulla sua scrivania per il rilascio di nuove versioni del kernel.

Inquadramento

Per il settore della tecnologia di sicurezza, questa vulnerabilità è rilevante per diversi motivi. I sistemi di controllo accessi, videosorveglianza e gestione degli allarmi funzionano spesso su server basati su Linux o dispositivi embedded. Se utenti locali - ad esempio tramite account di servizio compromessi o accessi insufficientemente protetti - possono leggere file protetti da root come chiavi SSH o file delle password, ciò spalanca le porte ad attacchi successivi contro l'intera infrastruttura.

Particolarmente critico è il fatto che la vulnerabilità non sia nuova: era già nota da anni, ma non era stata risolta. Ciò dimostra in modo esemplare quanto sia importante una gestione continua delle patch anche per sistemi apparentemente stabili e maturi. Poiché la falla è in linea di principio ipotizzabile per qualsiasi file eseguibile con privilegi root (setuid root), la superficie di attacco è potenzialmente molto ampia e non limitata agli esempi PoC finora pubblicati.

Consigli pratici

  • Gli amministratori di sistema possono adottare temporaneamente il comando "echo 3 > /proc/sys/kernel/yama/ptrace_scope" come rimedio per tutti i casi finora noti della vulnerabilità.
  • La correzione ufficiale è già inclusa nel kernel Linux 7.0.8: i sistemi interessati dovrebbero essere aggiornati tempestivamente non appena la rispettiva distribuzione renderà disponibile il relativo pacchetto del kernel.
  • Fino alla disponibilità di pacchetti di distribuzione con patch, la soluzione temporanea menzionata dovrebbe essere implementata in via prioritaria in particolare su server con credenziali di accesso sensibili (chiavi SSH, file delle password) e su sistemi critici per la sicurezza come server di controllo accessi o videosorveglianza.
  • Si raccomanda in generale di verificare quali account utente locali abbiano effettivamente accesso ai sistemi interessati, al fine di ridurre in generale la superficie di attacco per gli exploit basati su race condition.

Prospettive

Poiché le grandi e piccole distribuzioni Linux devono ora integrare e distribuire la correzione in nuovi pacchetti del kernel, è prevedibile, per esperienza, un certo ritardo prima che tutti i sistemi in produzione siano messi in sicurezza. In questa fase di transizione, la soluzione temporanea descritta tramite l'impostazione Yama ptrace rimane la misura immediata più importante per gli amministratori.

Considerando che si tratta già della quarta vulnerabilità di sicurezza comparabile in pochi giorni, è ragionevole presumere che ricercatori di sicurezza e sviluppatori del kernel continueranno a occuparsi intensamente della gestione della memoria e dei processi del kernel Linux. Per i gestori di infrastrutture critiche per la sicurezza - dai sistemi di allarme ai sistemi di videosorveglianza fino alle soluzioni di controllo accessi - l'incidente sottolinea la necessità di scandire strettamente i processi di gestione delle patch e di installare tempestivamente anche gli aggiornamenti del kernel apparentemente minori.