
Rafforzamento BitLocker TPM+PIN contro CVE-2026-45585 (YellowKey)
Mitigazione automatizzata per il bypass di BitLocker tramite WinRE — nessuna patch completa ancora disponibile
YellowKey è un bypass di BitLocker divulgato pubblicamente che concede a un attaccante con accesso fisico una shell senza restrizioni su un'unità Windows 11 protetta da BitLocker — senza la chiave di ripristino, senza il PIN e senza alcuna credenziale.
Un componente all'interno dell'ambiente di ripristino di Windows (autofstx.exe) esegue una routine di replay NTFS transazionale che elimina winpeshl.ini. L'effetto collaterale è una shell che si avvia con accesso completo al volume decriptato. L'attaccante lo attiva copiando una cartella su un'unità USB (o direttamente sulla partizione EFI), riavviando in WinRE e tenendo premuto CTRL.
Passare da solo TPM a TPM+PIN blocca completamente l'attacco. Con un PIN richiesto all'avvio, l'attaccante non può decriptare l'unità indipendentemente da come viene generata la shell WinRE — il TPM non rilascerà la chiave master del volume senza il PIN corretto.
BitLocker solo TPM si sblocca automaticamente a ogni avvio dello stesso hardware. TPM+PIN richiede un segreto che solo l'utente conosce, chiudendo il varco di YellowKey.
Lo script gestisce i prerequisiti dei Criteri di Gruppo che impediscono a manage-bde di aggiungere un protettore PIN per impostazione predefinita, quindi trasferisce in sicurezza l'unità da solo TPM a TPM+PIN in una singola esecuzione.
Esegui Add-BitLockerTPMPin.ps1 (amministratore)
│
▼
[Controllo versione] ──→ esce correttamente su Windows 10 (non interessato)
│
▼
[Controllo stato BitLocker] ──→ conferma che la crittografia sia attiva su C:
│
▼
[Correzione Criteri di Gruppo] ──→ imposta UseAdvancedStartup + UseTPMPIN + UseEnhancedPin
│ (necessario — manage-bde rifiuta TPM+PIN senza queste)
▼
[gpupdate /force] ──→ applica i criteri immediatamente senza riavvio
│
▼
[manage-bde -protectors -add C: -TPMAndPIN] ──→ richiede il PIN in modo interattivo
│
▼
[Elenco protettori] ──→ mostra tutti i protettori correnti per verifica
│
▼
[Rimuovi protettore solo TPM] ──→ opzionale, richiesto con conferma
# Esegui questi come due comandi separati in un prompt PowerShell elevato:
Set-ExecutionPolicy Bypass -Scope Process -Force
# Tutte le unità protette da BitLocker (rilevate automaticamente):
.\Add-BitLockerTPMPin.ps1
# Oppure scegli un'unità specifica:
.\Add-BitLockerTPMPin.ps1 -Drive C
.\Add-BitLockerTPMPin.ps1 -Drive D
Ti verrà richiesto in modo interattivo di impostare un PIN per ciascuna unità. I PIN alfanumerici sono supportati (lo script abilita i PIN avanzati tramite registro).
Nota: I protettori TPM+PIN si applicano solo all'unità del sistema operativo (quella che si avvia tramite TPM). Le unità dati (D:, E:, ecc.) utilizzano protettori con password o chiave di ripristino — lo script le rileverà e le salterà automaticamente.
Unità protette da BitLocker trovate:
C:\ CrittografataCompletamente Protezione: On
D:\ CrittografataCompletamente Protezione: On
Chiavi dei Criteri di Gruppo impostate. Aggiornamento dei criteri...
==============================
Unità: C:\
==============================
Aggiunta del protettore TPM+PIN. Ti verrà richiesto un PIN.
Il PIN deve essere di almeno 6 caratteri. È supportato l'alfanumerico.
Digita il PIN da utilizzare per proteggere il volume:
Conferma il PIN digitandolo di nuovo:
Protettori di chiave aggiunti:
TPM E PIN:
ID: {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
Protettori correnti su C:\:
...
Protettore solo TPM trovato: {YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY}
Rimuovere il protettore solo TPM su C:\? Questo lascia solo TPM+PIN. (s/N): s
Protettore solo TPM rimosso.
==============================
Unità: D:\
==============================
D:\ non ha un protettore TPM — TPM+PIN si applica solo all'unità del sistema operativo. Saltata.
Fatto. Verifica con: manage-bde -status <unità>
manage-bde -status C:
# Dovrebbe mostrare: Key Protectors: TPM And PIN
# Protection Status: Protection On
Avere la chiave di ripristino prima di eseguire lo script. Lo script rimuove il protettore solo TPM solo dopo aver confermato che il protettore TPM+PIN sia stato aggiunto con successo, ma se la macchina viene riavviata durante l'esecuzione o se il passaggio manage-bde -add fallisce parzialmente, avrai bisogno della chiave di ripristino per sbloccare l'unità.
Recupera ora la tua chiave di ripristino:
# Stampa la chiave di ripristino nella console (salvala in un posto sicuro)
manage-bde -protectors -get C: -Type RecoveryPassword
Oppure trovala nel tuo account Microsoft su account.microsoft.com/devices/recoverykey.
La scelta del PIN è importante. Un PIN numerico breve offre una protezione debole contro attacchi fisici mirati. Utilizza almeno 8 caratteri. I PIN alfanumerici sono abilitati dallo script.
Lo script imposta quattro valori del registro sotto HKLM:\SOFTWARE\Policies\Microsoft\FVE:
Queste sono esattamente le chiavi che i Criteri di Gruppo di Windows (gpedit.msc) scrivono. Impostarle tramite registro equivale a configurare i criteri tramite lo snap-in MMC.
Se preferisci eseguire i passaggi singolarmente:
# 1. Imposta le chiavi del registro dei Criteri di Gruppo
$p = "HKLM:\SOFTWARE\Policies\Microsoft\FVE"
if (-not (Test-Path $p)) { New-Item -Path $p -Force }
Set-ItemProperty -Path $p -Name "UseAdvancedStartup" -Value 1 -Type DWord -Force
Set-ItemProperty -Path $p -Name "UseTPMPIN" -Value 2 -Type DWord -Force
Set-ItemProperty -Path $p -Name "UseTPM" -Value 2 -Type DWord -Force
Set-ItemProperty -Path $p -Name "UseEnhancedPin" -Value 1 -Type DWord -Force
gpupdate /force
# 2. Aggiungi il protettore TPM+PIN
manage-bde -protectors -add C: -TPMAndPIN
# 3. Trova l'ID del protettore solo TPM
manage-bde -protectors -get C:
# 4. Rimuovilo (sostituisci GUID con l'ID del passaggio 3)
manage-bde -protectors -delete C: -id {YOUR-TPM-ONLY-GUID}
# 5. Verifica
manage-bde -status C:
yellowkey-mitigation/
├── Add-BitLockerTPMPin.ps1 # Script di mitigazione principale
└── README.md
Questo script è stato sviluppato in collaborazione con Claude (Anthropic). Tutta la logica è stata revisionata e testata su Windows 11 dall'autore.
MIT — Libero da usare, modificare e distribuire.
| Dettagli |
|---|
| CVE | CVE-2026-45585 |
| Punteggio CVSS | 6.8 (Medio) |
| Vettore CVSS | CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-77 (Iniezione di comandi) |
| Vettore di attacco | È richiesto accesso fisico |
| Pubblicato | 19 maggio 2026 |
| Patch | Ancora nessuna — Microsoft ha emesso solo una mitigazione manuale |
| Avviso MSRC | msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45585 |
| PoC | Pubblicamente disponibile (Nightmare-Eclipse/YellowKey) |
| Interessati | Windows 11 (24H2, 25H2, 26H1), Windows Server 2022/2025 |
| Non interessati | Windows 10 |
| Chiave | Valore | Scopo |
|---|
UseAdvancedStartup | 1 | Abilita i criteri "Richiedi autenticazione aggiuntiva all'avvio" — senza questo, tutte le chiavi UseTPM* vengono ignorate |
UseTPMPIN | 2 | 0 = blocca, 1 = richiedi, 2 = consenti TPM+PIN |
UseTPM | 2 | Consente solo TPM insieme al PIN (previene conflitti di criteri) |
UseEnhancedPin | 1 | Consente caratteri alfanumerici nel PIN |