
PoC di LPE per Windows 11 che sfrutta l'oggetto COM della sessione Component Based Servicing (CBS) di TrustedInstaller e le junction per la scrittura arbitraria di file.
Escalation locale dei privilegi tramite metodo COM CBS non protetto - scrittura arbitraria di file da integrità media a SYSTEM su Windows 11
| Data | Evento |
|---|---|
| 22 luglio 2026 | Vulnerabilità segnalata a MSRC |
| 8 settembre 2026 | Microsoft corregge lo stack di manutenzione di Windows Update (Patch Tuesday di settembre) |
| 29 ottobre 2026 | MSRC risponde (vedi sotto) |
L'oggetto COM della sessione di Component Based Servicing (CBS) viene eseguito all'interno di TrustedInstaller.exe come SYSTEM ed è attivabile da qualsiasi utente interattivo. Quasi ogni metodo dell'interfaccia della sessione chiama EnsureCallerIsAdministrator prima di procedere, tranne CreateExternalTransformerExecutor, che restituiva un executor del transformer dello store CSI di basso livello senza alcun controllo di autorizzazione.
Il metodo Initialize() di quell'executor viene eseguito come SYSTEM senza impersonificazione. Un chiamante con integrità media può indurre TrustedInstaller a creare un file di log di un hive del registro in un percorso controllato dall'attaccante sfruttando junction NTFS e link simbolici dell'object manager, nessuno dei quali richiede privilegi speciali per essere creato.
CreateExternalTransformerExecutorRisultato: scrittura arbitraria di file in qualsiasi directory esistente come SYSTEM, da un normale account utente. Nessun diritto di amministratore, nessun privilegio speciale, nessuna interazione dell'utente richiesta.
MSRC ha valutato il mio report come Bassa gravità / Defense in Depth, affermando che le "proof of concept valutate non dimostravano scritture di file in posizioni non autorizzate". Il caso è stato chiuso in quanto al di sotto della soglia per la manutenzione immediata e non è stata emessa alcuna CVE aggiuntiva, nessun bounty assegnato, e MSRC non seguirà ulteriormente il problema, il che ha senso se si tratta di un duplicato.
Il PoC scrive contenuto controllato dall'attaccante in C:\Windows\System32 da un processo con integrità media e non amministratore, e lo ha fatto in modo affidabile su ogni build non corretta su cui è stato testato.
La spiegazione più probabile della valutazione di MSRC è la tempistica: il report è stato inviato a luglio, la correzione dello stack di manutenzione è stata distribuita a settembre e la risposta di MSRC è arrivata a ottobre, momento in cui il PoC fallirebbe effettivamente con E_ACCESSDENIED su qualsiasi sistema aggiornato.
Sono comunque stato aggiunto alla pagina delle menzioni speciali di MSRC, quindi almeno c'è questo :)
Sospetto che la vulnerabilità qui segnalata sia coperta da CVE-2026-81963 ("Windows Update Stack Elevation of Privilege Vulnerability"), corretta nell'aggiornamento menzionato e che descrive la stessa classe di vulnerabilità (CWE-59 / CWE-284, link-following + controllo degli accessi improprio nello stack di servicing CBS). Tale CVE è stata attribuita a Romain Deperne (Airbus Helicopters) e al Microsoft Threat Intelligence Center (MSTIC), ed è stata confermata come attivamente sfruttata in the wild prima della patch. MA: non ho alcuna conferma ufficiale che la mia segnalazione riguardi lo stesso problema.
Entrambi i PoC devono essere eseguiti come utente normale, non amministratore (integrità media) e contengono lo stesso exploit di base. Se li esegui con privilegi elevati, l'exploit riesce banalmente perché sei già amministratore, il che vanifica completamente lo scopo.
PoC_Fun/Il proof-of-concept completo con interfaccia grafica. Un harness grafico vibecoded che racchiude la tecnica di exploit in un'interfaccia interattiva. Ottimo per le demo e per tutti coloro che non amano i noiosi PoC solo da terminale (MAKE POCS FUN AGAIN!)
Il font pixel art gotico monospazio usato nei titoli e nel banner è stato creato su mia commissione da nico_n_art.
Build:
$ cd PoC_Fun
$ dotnet clean -c Release && dotnet publish -c Release
$ .\bin\Release\net8.0-windows\win-x64\publish\TrustedHive.exe
Utilizzo: Basta fare doppio clic sulla release e l'interfaccia dovrebbe guidarti, oppure usa "?" per aprire il menu di aiuto.
PoC_Boring/Il file C standalone per l'exploit. Nessuna interfaccia e nessuna dipendenza oltre a ole32.lib e advapi32.lib. Compilalo con MSVC (cl /O2 ...), puntalo a un file di input e a un percorso di output, e fa il suo lavoro.
Compilazione:
$ cd PoC_Boring
$ cl /nologo /W3 /O2 TrustedHive_PoC.c ole32.lib advapi32.lib /link
$ .\TrustedHive_PoC.exe
Utilizzo:
$ .\TrustedHive_BoringPoC.exe <input_file> <output_path> [/keep]
<input_file> : file whose bytes are written to the target
<output_path> : destination (its parent directory must exist),
e.g. C:\Windows\System32\poc.dll
/keep : keep the Hidden+System attributes the Configuration Manager
stamps on the created hive-log file (default: clear them)
EvaluateApplicability) sotto la stessa CVE