
PoC local de escalada de privilegios en Windows para CVE-2026-66804: coloca una DLL COM en una ruta inexistente para abusar de Camera FrameServer y suplantar a SYSTEM.
El problema, descubierto e informado de forma independiente, ahora se rastrea
como CVE-2026-66804. MSRC confirmó el envío como duplicado de un informe
anterior con la misma causa raíz subyacente en Windows Camera FrameServer.
Un usuario estándar de Windows puede crear una ruta de confianza faltante en
C:\ProgramData\CrossDevice, colocar la DLL COM registrada de la cámara virtual
Cross Device y hacer que Windows Camera Frame Server cargue código controlado
por el atacante como NT AUTHORITY\LOCAL SERVICE. La cadena de prueba incluida
usa el SeImpersonatePrivilege habilitado del token del servicio para obtener
NT AUTHORITY\SYSTEM.
Vídeo principal de ruta faltante en VM nueva hasta SYSTEM
| CVE | CVE-2026-66804 |
| Título de Microsoft | Vulnerabilidad de elevación de privilegios en el servicio Cross Device de Microsoft Windows |
| Caso MSRC | 119805 |
| Envío MSRC | VULN-192287 |
| Resolución de MSRC | Complete - Duplicate |
| Reconocimiento de Microsoft | Daniel Wade with nadsec |
| Fecha de publicación | 2026-08-11 |
| Gravedad de Microsoft | Importante |
| CVSS de Microsoft | 7.8 Alta - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| CWE de Microsoft | CWE-284: Control de acceso inadecuado |
| Clase de error | Plantado de DLL en ruta faltante / secuestro de objetos COM |
| Componente | Cámara virtual Cross Device / Windows Camera FrameServer |
| Clase COM | {E9F83CF2-E0C0-4CA7-AF01-E90C70BEF496} |
| Compilación principal probada | Windows 11 Pro 25H2, compilación 26200.8524 |
| Impacto | Usuario local estándar a NT AUTHORITY\SYSTEM |
Windows registró el servidor COM de la cámara virtual Cross Device en:
%PROGRAMDATA%\CrossDevice\CrossDevice.Streaming.Source.dll
En la VM de Windows 11 nueva/predeterminada usada para la validación, el registro de todo el equipo existía antes que el directorio subyacente. Un usuario estándar creó el directorio faltante, colocó la DLL esperada e invocó la API de la cámara virtual. Camera Frame Server cargó la DLL como LOCAL SERVICE y, después, la cadena de prueba obtuvo un token de SYSTEM y escribió un recibo en una ruta protegida.
Se trata de un problema de ruta faltante o de preinicialización. No es una afirmación de que un usuario estándar pueda sobrescribir una DLL existente y protegida de Microsoft.
El registro relevante de todo el equipo es:
HKLM\SOFTWARE\Classes\CLSID\{E9F83CF2-E0C0-4CA7-AF01-E90C70BEF496}\InProcServer32
(Default) REG_EXPAND_SZ %PROGRAMDATA%\CrossDevice\CrossDevice.Streaming.Source.dll
La cadena demostrada es:
C:\ProgramData\CrossDevice no existe.SeImpersonatePrivilege.NT AUTHORITY\SYSTEM.Ejecute esta prueba de concepto únicamente en una VM de laboratorio vulnerable y desechable que le pertenezca o para la que tenga autorización explícita de pruebas. Haga una instantánea de la VM antes de usarla.
Desde un símbolo del sistema con usuario estándar:
cd /d path\to\fresh-vm-repro
Run-CrossDevicePoC.cmd
El ejecutor valida el registro esperado y se niega a tocar un directorio Cross Device preexistente o un binario auxiliar inesperado. Una ejecución correcta genera recibos de LOCAL SERVICE, de privilegio y de SYSTEM.
Los requisitos previos completos, los resultados esperados, los hashes, los
comandos de compilación y los pasos de limpieza están en
fresh-vm-repro/README.md.
Se conservan ambas grabaciones porque documentan partes complementarias del caso.
| Vídeo | Rol |
|---|---|
fresh-vm-missing-path-to-system.mp4 | Revalidación principal en VM nueva/predeterminada que muestra el plantado por parte de un usuario estándar, la ejecución como LOCAL SERVICE y los recibos de SYSTEM. La grabación revisa el estado anterior de ruta faltante mediante el desplazamiento hacia atrás de la terminal; la transcripción conserva la salida explícita previa a la creación. |
guided-full-chain-standard-user-to-system.mp4 | Tutorial de apoyo del envío original. Muestra la cadena de explotación y suplantación con mayor detalle. La carga útil ya está presente al principio, por lo que esta grabación aporta contexto de la cadena en lugar de una prueba independiente de estado nuevo. |
La salida de consola capturada de la VM nueva se conserva en
fresh-vm-transcript.txt.
docs/technical-report.mddocs/msrc-fresh-vm-clarification.mddocs/archive/| Fecha | Evento |
|---|---|
| 2026-06-01 | Informe inicial enviado a MSRC como VULN-192287; se abrió el caso MSRC 119805 |
| 2026-06-04 | Se proporcionaron la aclaración de ruta faltante/preinicialización y un archivo de reproducción limpia |
| 2026-06-05 | MSRC acusó recibo de la aclaración |
| 2026-07-27 | MSRC confirmó el comportamiento y luego determinó que el envío duplicaba un problema anterior con la misma causa raíz subyacente en Windows Camera FrameServer; se planificó otorgar el crédito y no se concedió ninguna recompensa |
| 2026-08-11 | Microsoft publicó CVE-2026-66804 y lanzó actualizaciones de seguridad |
| 2026-08-13 | Se confirmó el texto del reconocimiento Daniel Wade with nadsec |
Partes del resolvedor OXID, la suplantación mediante named pipes, la construcción de OBJREF y la lógica de adquisición del token de SYSTEM se adaptaron y tradujeron a C a partir de GodPotato, de BeichenDream y colaboradores.
Consulte THIRD_PARTY_NOTICES.md y
LICENSES/Apache-2.0.txt para conocer los detalles
de atribución y licencia.
fresh-vm-repro/docs/technical-report.md