
Endurecimiento de BitLocker TPM+PIN contra CVE-2026-45585 (YellowKey)
Mitigación automatizada para la omisión de BitLocker en WinRE: aún no hay un parche completo disponible
YellowKey es una omisión de BitLocker divulgada públicamente que otorga a un atacante con acceso físico un shell sin restricciones en una unidad de Windows 11 protegida con BitLocker: sin la clave de recuperación, sin el PIN y sin ninguna credencial.
Un componente dentro del Entorno de Recuperación de Windows (autofstx.exe) ejecuta una rutina de reproducción de NTFS transaccional que elimina winpeshl.ini. El efecto secundario es un shell que se lanza con acceso completo al volumen descifrado. El atacante lo activa copiando una carpeta a una unidad USB (o directamente a la partición EFI), reiniciando en WinRE y manteniendo presionada la tecla CTRL.
Cambiar de solo TPM a TPM+PIN bloquea el ataque por completo. Con un PIN requerido al arrancar, el atacante no puede descifrar la unidad sin importar cómo se genere el shell de WinRE: el TPM no liberará la clave maestra del volumen sin el PIN correcto.
BitLocker con solo TPM se desbloquea automáticamente en cualquier arranque del mismo hardware. TPM+PIN requiere un secreto que solo el usuario conoce, cerrando la brecha de YellowKey.
El script gestiona los requisitos previos de la Directiva de grupo que impiden que manage-bde agregue un protector PIN de forma predeterminada y, a continuación, realiza la transición segura de la unidad de solo TPM a TPM+PIN en una sola ejecución.
Run Add-BitLockerTPMPin.ps1 (admin)
│
▼
[Version Check] ──→ exits gracefully on Windows 10 (not affected)
│
▼
[BitLocker Status Check] ──→ confirms encryption is active on C:
│
▼
[Group Policy Fix] ──→ sets UseAdvancedStartup + UseTPMPIN + UseEnhancedPin
│ (required — manage-bde rejects TPM+PIN without these)
▼
[gpupdate /force] ──→ applies policy immediately without reboot
│
▼
[manage-bde -protectors -add C: -TPMAndPIN] ──→ prompts for PIN interactively
│
▼
[List Protectors] ──→ shows all current protectors for verification
│
▼
[Remove TPM-only Protector] ──→ optional, prompted with confirmation
# Run these as two separate commands in an elevated PowerShell prompt:
Set-ExecutionPolicy Bypass -Scope Process -Force
# All BitLocker-protected drives (auto-detected):
.\Add-BitLockerTPMPin.ps1
# Or target a specific drive:
.\Add-BitLockerTPMPin.ps1 -Drive C
.\Add-BitLockerTPMPin.ps1 -Drive D
Se te pedirá de forma interactiva que establezcas un PIN por unidad. Se admiten PIN alfanuméricos (el script habilita los PIN mejorados mediante el registro).
Nota: Los protectores TPM+PIN se aplican solo a la unidad del sistema operativo (la unidad que arranca a través del TPM). Las unidades de datos (D:, E:, etc.) usan protectores de contraseña o clave de recuperación: el script las detectará y las omitirá automáticamente.
BitLocker-protected drives found:
C:\ FullyEncrypted Protection: On
D:\ FullyEncrypted Protection: On
Group Policy keys set. Refreshing policy...
==============================
Drive: C:\
==============================
Adding TPM+PIN protector. You will be prompted for a PIN.
PIN must be 6+ characters. Alphanumeric is supported.
Type the PIN to use to protect the volume:
Confirm the PIN by typing it again:
Key Protectors Added:
TPM And PIN:
ID: {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
Current protectors on C:\:
...
TPM-only protector found: {YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY}
Remove TPM-only protector on C:\? This leaves only TPM+PIN. (y/N): y
TPM-only protector removed.
==============================
Drive: D:\
==============================
D:\ has no TPM protector — TPM+PIN applies to the OS drive only. Skipping.
Done. Verify with: manage-bde -status <drive>
manage-bde -status C:
# Should show: Key Protectors: TPM And PIN
# Protection Status: Protection On
Ten tu clave de recuperación antes de ejecutar. El script elimina el protector de solo TPM solo después de confirmar que el protector TPM+PIN se agregó correctamente, pero si la máquina se reinicia a mitad de la ejecución o el paso manage-bde -add falla parcialmente, necesitarás la clave de recuperación para desbloquear la unidad.
Recupera tu clave de recuperación ahora:
# Print recovery key to console (store it somewhere safe)
manage-bde -protectors -get C: -Type RecoveryPassword
O búscala en tu cuenta de Microsoft en account.microsoft.com/devices/recoverykey.
La elección del PIN importa. Un PIN numérico corto ofrece una protección débil contra ataques físicos dirigidos. Usa al menos 8 caracteres. El script habilita los PIN alfanuméricos.
El script establece cuatro valores de registro en HKLM:\SOFTWARE\Policies\Microsoft\FVE:
Estas son las claves exactas que escribe la Directiva de grupo de Windows (gpedit.msc). Establecerlas mediante el registro equivale a configurar la directiva a través del complemento MMC.
Si prefieres ejecutar los pasos individualmente:
# 1. Set Group Policy registry keys
$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. Add TPM+PIN protector
manage-bde -protectors -add C: -TPMAndPIN
# 3. Find the TPM-only protector ID
manage-bde -protectors -get C:
# 4. Remove it (replace GUID with the ID from step 3)
manage-bde -protectors -delete C: -id {YOUR-TPM-ONLY-GUID}
# 5. Verify
manage-bde -status C:
yellowkey-mitigation/
├── Add-BitLockerTPMPin.ps1 # Main mitigation script
└── README.md
Este script fue co-desarrollado con Claude (Anthropic). Toda la lógica fue revisada y probada en Windows 11 por el autor.
MIT — Libre de usar, modificar y distribuir.
| Detalles |
|---|
| CVE | CVE-2026-45585 |
| Puntuación CVSS | 6.8 (Media) |
| Vector CVSS | CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-77 (Inyección de comandos) |
| Vector de ataque | Se requiere acceso físico |
| Publicado | 19 de mayo de 2026 |
| Parche | Aún no disponible: Microsoft solo emitió una mitigación manual |
| Aviso MSRC | msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45585 |
| PoC | Disponible públicamente (Nightmare-Eclipse/YellowKey) |
| Afectados | Windows 11 (24H2, 25H2, 26H1), Windows Server 2022/2025 |
| No afectados | Windows 10 |
| Clave | Valor | Propósito |
|---|
UseAdvancedStartup | 1 | Habilita la directiva "Requerir autenticación adicional al inicio"; sin esto, todas las claves UseTPM* se ignoran |
UseTPMPIN | 2 | 0 = bloquear, 1 = requerir, 2 = permitir TPM+PIN |
UseTPM | 2 | Permite solo TPM junto con PIN (evita conflictos de directivas) |
UseEnhancedPin | 1 | Permite caracteres alfanuméricos en el PIN |