
Prueba de concepto de LPE para Windows 11 que abusa del objeto COM de sesión de Component Based Servicing (CBS) de TrustedInstaller y de las uniones (junctions) para la escritura arbitraria de archivos.
Escalada de privilegios local mediante un método COM de CBS sin restricciones - escritura arbitraria de archivos de IL medio a SYSTEM en Windows 11
| Fecha | Evento |
|---|---|
| 22 de julio de 2026 | Vulnerabilidad reportada a MSRC |
| 8 de septiembre de 2026 | Microsoft parchea la pila de servicio de Windows Update (Patch Tuesday de septiembre) |
| 29 de octubre de 2026 | MSRC responde (ver abajo) |
El objeto COM de sesión de Component Based Servicing (CBS) se ejecuta dentro de TrustedInstaller.exe como SYSTEM y puede ser activado por cualquier usuario interactivo. Casi todos los métodos de la interfaz de sesión llaman a EnsureCallerIsAdministrator antes de continuar, excepto CreateExternalTransformerExecutor, que devolvía un ejecutor de transformador de almacén CSI de bajo nivel sin ninguna comprobación de autorización.
El método Initialize() de ese ejecutor se ejecuta como SYSTEM sin suplantación. Un llamador de integridad media puede hacer que TrustedInstaller cree un archivo de registro de hive del registro en una ruta controlada por el atacante explotando junctions NTFS y enlaces simbólicos del gestor de objetos, ninguno de los cuales requiere privilegios especiales para crearse.
CreateExternalTransformerExecutorResultado: Escritura arbitraria de archivos en cualquier directorio existente como SYSTEM, desde una cuenta de usuario normal. Sin derechos de administrador, sin privilegios especiales, sin interacción del usuario.
MSRC evaluó mi informe como Severidad baja / Defensa en profundidad, afirmando que las "pruebas de concepto evaluadas no demostraron escrituras de archivos en ubicaciones no autorizadas". El caso se cerró por estar por debajo del umbral para el servicio inmediato y no se emitió ningún CVE adicional, no se otorgó ninguna recompensa, y MSRC no rastreará más el problema, lo cual tiene sentido si se trata de un duplicado.
El PoC escribe contenido controlado por el atacante en C:\Windows\System32 desde un proceso de IL medio y no administrador, y lo hizo de forma fiable en cada compilación sin parchear en la que se probó.
La explicación más probable para la evaluación de MSRC es el momento: el informe se envió en julio, la corrección de la pila de servicio se publicó en septiembre y la respuesta de MSRC llegó en octubre, momento en el que el PoC efectivamente fallaría con E_ACCESSDENIED en cualquier sistema actualizado.
Al menos me añadieron a la página de menciones especiales de MSRC, así que algo es algo :)
Sospecho que la vulnerabilidad reportada aquí está cubierta por CVE-2026-81963 ("Windows Update Stack Elevation of Privilege Vulnerability"), que fue corregida en la actualización mencionada y describe la misma clase de vulnerabilidad (CWE-59 / CWE-284, seguimiento de enlaces + control de acceso inadecuado en la pila de servicio CBS). Esa CVE fue atribuida a Romain Deperne (Airbus Helicopters) y al Microsoft Threat Intelligence Center (MSTIC), y se confirmó que fue explotada activamente en la naturaleza antes del parche. PERO: no tengo confirmación oficial de que mi informe cubra el mismo problema.
Ambos PoC deben ejecutarse como un usuario normal, no administrador (integridad media) y contienen el mismo exploit base. Si los ejecutas con privilegios elevados, el exploit tiene éxito trivialmente porque ya tienes permisos de administrador, lo que pierde todo el sentido.
PoC_Fun/La prueba de concepto completa con una interfaz gráfica. Un arnés gráfico vibecodeado que envuelve la técnica del exploit en una interfaz interactiva. Ideal para demos y para todos aquellos a quienes no les gustan los PoC aburridos de solo terminal (¡HAGAMOS LOS POC DIVERTIDOS OTRA VEZ!)
La fuente de pixel art gótica monoespaciada usada en los encabezados y el banner fue creada por encargo por nico_n_art.
Compilación:
$ cd PoC_Fun
$ dotnet clean -c Release && dotnet publish -c Release
$ .\bin\Release\net8.0-windows\win-x64\publish\TrustedHive.exe
Uso: Simplemente haz doble clic en la versión publicada y la interfaz de usuario debería guiarte, o usa el "?" para abrir el menú de ayuda.
PoC_Boring/El archivo C autónomo para el exploit. Sin interfaz de usuario y sin dependencias más allá de ole32.lib y advapi32.lib. Compílalo con MSVC (cl /O2 ...), apúntalo a un archivo de entrada y a una ruta de salida, y hace lo suyo.
Compilación:
$ cd PoC_Boring
$ cl /nologo /W3 /O2 TrustedHive_PoC.c ole32.lib advapi32.lib /link
$ .\TrustedHive_PoC.exe
Uso:
$ .\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) bajo el mismo CVE