Sicurezza · 3 min read · Sep 29, 2025

Ricercatore di Google scopre vulnerabilità di escalation dei privilegi in Windows 8.1

Il ricercatore di Google scopre un bug di elevazione dei privilegi in Windows 8.1, versioni 32/64 bit.

Un ricercatore di Google di nome Forshaw ha scoperto un bug di escalation dei privilegi in Windows 8.1. Il bug in ahcache.sys/NtApphelpCacheControl è apparso dopo che Windows 8 è stato aggiornato a Windows 8.1 ed è stato trovato da Forshaw nel settembre 2014. Ha notificato la mailing list di Google Security Research riguardo al bug il 30 settembre e dopo il termine di divulgazione di 90 giorni, il difetto e il Proof of Concept sono stati resi pubblici ieri.

Il team di ricercatori di Google ha contattato Microsoft riguardo al bug lo stesso giorno in cui è stato scoperto il difetto, ma non ci sono indicazioni di alcuna azione intrapresa in merito. Forshaw ha anche dichiarato nella mailing list di aver testato il PoC solo su 8.1 e non sa se Windows 7 sia vulnerabile.

La vulnerabilità è identificata nella funzione ahcache.sys/AhcVerifyAdminContext. Il proof of concept include due file di programma e un insieme di istruzioni per eseguirlo, che portano all’esecuzione della calcolatrice di Windows come Amministratore. Forshaw afferma che il bug non è in UAC stesso, ma che UAC è utilizzato in parte per dimostrare il bug.

Microsoft ha un grosso problema con questa vulnerabilità poiché rilascia le sue patch principali il secondo martedì del mese. Attualmente Microsoft ha due opzioni :

  • Risolverlo in tempo per il secondo Patch Tuesday.
  • Emissione di una patch fuori banda (di solito un cattivo segno di 0day).

Il prossimo Patch Tuesday è previsto per il 13.1.2015 e se rilascia una patch prima di quella data, si può presumere che si tratti di una vulnerabilità Zero day.

L’intero thread è riprodotto di seguito :

Piattaforma: Windows 8.1 Update 32/64 bit (Nessun altro OS testato) Su Windows 8.1 update la chiamata di sistema NtApphelpCacheControl (il codice è effettivamente in ahcache.sys) consente ai dati di compatibilità delle applicazioni di essere memorizzati nella cache per un rapido riutilizzo quando vengono creati nuovi processi. Un utente normale può interrogare la cache ma non può aggiungere nuove voci memorizzate nella cache poiché l’operazione è riservata agli amministratori. Questo viene verificato nella funzione AhcVerifyAdminContext. Questa funzione ha una vulnerabilità in cui non controlla correttamente il token di impersonificazione del chiamante per determinare se l’utente è un amministratore. Legge il token di impersonificazione del chiamante utilizzando PsReferenceImpersonationToken e poi fa un confronto tra il SID dell’utente nel token e il SID di LocalSystem. Non controlla il livello di impersonificazione del token, quindi è possibile ottenere un token di identità sul proprio thread da un processo di sistema locale e bypassare questo controllo. A questo scopo, il PoC abusa del servizio BITS e di COM per ottenere il token di impersonificazione, ma ci sono probabilmente altri modi. È solo una questione di trovare un modo per sfruttare la vulnerabilità. Nel PoC viene creata una voce di cache per un eseguibile auto-elevato UAC (ad esempio ComputerDefaults.exe) e imposta la cache per puntare all’entry di compatibilità dell’app per regsvr32, che costringe un shim RedirectExe a ricaricare regsvr32.exe. Tuttavia, qualsiasi eseguibile potrebbe essere utilizzato, il trucco sarebbe trovare una configurazione di compatibilità dell’app preesistente adatta da abusare. Non è chiaro se Windows 7 sia vulnerabile poiché il percorso del codice per l’aggiornamento ha un controllo di privilegio TCB su di esso (anche se sembra che a seconda dei flag questo potrebbe essere bypassabile). Non è stato fatto alcuno sforzo per verificarlo su Windows 7. NOTA: Questo non è un bug in UAC, sta solo usando l’auto elevazione UAC a scopo dimostrativo. Il PoC è stato testato su Windows 8.1 update, sia versioni a 32 bit che a 64 bit. Consiglierei di eseguire su 32 bit solo per essere sicuri. Per verificare, eseguire i seguenti passaggi: 1) Mettere AppCompatCache.exe e Testdll.dll su disco

  1. Assicurarsi che UAC sia abilitato, l’utente corrente sia un amministratore con token diviso e che l’impostazione UAC sia quella predefinita (nessun prompt per eseguibili specifici).
  2. Eseguire AppCompatCache dal prompt dei comandi con la riga di comando “AppCompatCache.exe c:\windows\system32\ComputerDefaults.exe testdll.dll”.
  3. Se ha successo, la calcolatrice dovrebbe apparire in esecuzione come amministratore. Se non funziona la prima volta (e si ottiene il programma ComputerDefaults), rieseguire lo sfruttamento dal punto 3, sembra esserci un problema di caching/tempistica a volte al primo avvio. Questo bug è soggetto a un termine di divulgazione di 90 giorni. Se trascorrono 90 giorni senza una patch ampiamente disponibile, il rapporto sul bug diventerà automaticamente visibile al pubblico.

Un altro utente ha affermato che Windows 10 non è vulnerabile a questa vulnerabilità mentre un altro ha messo in discussione la politica di Google di rendere pubblico un tale bug senza l’approvazione di Microsoft. Il thread e il PoC possono essere accessibili qui.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.