Home Homebrew Resi noti i dettagli sulla vulnerabilità portata alla luce dal developer TheFlow...

Resi noti i dettagli sulla vulnerabilità portata alla luce dal developer TheFlow a dicembre dello scorso anno

649
0

Sono stati resi noti i dettagli sulla vulnerabilità portata alla luce dal developer TheFlow alcuni mesi fa e segnalata attraverso la piattaforma di bug bounty HackerOne.

Identificata come un use-after-free nella chiamata di sistema (syscall) sys_fsc2h_ctrl, questa vulnerabilità potrebbe consentire un’escalation dei privilegi, mettendo a rischio server, dispositivi embedded e infrastrutture critiche che eseguono FreeBSD.

https://twitter.com/dravszoo1/status/1913139242441601212

Sebbene i reali dettagli specifici contenuti all’interno del report su HackerOne non siano pubblici, la descrizione tecnica fornita evidenzia un problema complesso e potenzialmente devastante.

La vulnerabilità si manifesta attraverso una condizione di gara (race condition) che coinvolge quattro thread concorrenti, tutti interagenti con la syscall sys_fsc2h_ctrl.

Questa chiamata di sistema sembra gestire operazioni di controllo su un filesystem o un sottosistema specifico, ma un errore nella gestione della memoria del kernel porta a una corruzione dello stack. Ecco come si sviluppa lo scenario:

  • Thread 1: Esegue il comando CMD_WAIT (0x10001) in sys_fsc2h_ctrl, entrando in attesa su un path 1 (una risorsa o percorso specifico).
  • Thread 2: Esegue lo stesso comando CMD_WAIT, ma in attesa su un path 2.
  • Thread 3: Esegue il comando CMD_RESOLVE (0x20005), che associa il puntatore di path 2 a un buffer locale sullo stack del kernel e poi entra in modalità sleep.
  • Thread 4: Esegue il comando CMD_COMPLETE (0x20003), scrivendo dati nel buffer dello stack di path 2 e risvegliando Thread 3.

Thread 2: Si risveglia prima di Thread 3 e tenta di liberare la memoria associata a path 2. Tuttavia, questo puntatore non è un’allocazione dinamica (es. tramite malloc()), ma un indirizzo sullo stack del kernel.

La liberazione causa un kernel stack free, corrompendo lo stack e aprendo la porta a exploit.

Il problema chiave è che il kernel tratta erroneamente il puntatore di path 2 come un’allocazione dinamica, portando a un use-after-free quando Thread 2 lo libera.

Questa corruzione dello stack consente a un attaccante di manipolare il flusso di esecuzione del kernel, con conseguenze gravi.

L’impatto di questa vulnerabilità viene classificata come critica, poiché consente un’escalation dei privilegi. Un attaccante con accesso locale (es. un utente non privilegiato) potrebbe sfruttare il bug per:

  • Eseguire codice arbitrario in modalità kernel (ring 0), ottenendo il controllo completo del sistema.
  • Modificare strutture dati critiche, come tabelle dei privilegi o descrittori di processo.
  • Bypassare protezioni di sicurezza come KASLR (Kernel Address Space Layout Randomization), SMAP (Supervisor Mode Access Prevention) o SMEP (Supervisor Mode Execution Prevention).

I sistemi vulnerabili includono:

  • Server aziendali che eseguono FreeBSD per servizi web, database o applicazioni critiche.
  • Dispositivi embedded basati su FreeBSD, come router, NAS o appliance di sicurezza.
  • Infrastrutture critiche che si affidano alla robustezza di FreeBSD.

Un exploit ben progettato potrebbe sincronizzare i quattro thread per massimizzare la race condition, iniettando codice malevolo o manipolando dati nello stack per ottenere privilegi di root.

Fonte: x.com

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.