Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

PostHeaderIcon Fallo de COM en Windows permite obtener privilegios SYSTEM con una DLL maliciosa


Se ha detallado una vulnerabilidad de escalada de privilegios en Windows (CVE-2026-66804) que permitía a un usuario con pocos privilegios ejecutar código arbitrario con permisos totales de NT AUTHORITY\SYSTEM. El fallo explotaba una debilidad en el manejo de los registros del Modelo de Objetos de Componentes (COM) mediante la implantación de una DLL maliciosa. Microsoft ya ha solucionado este error en su actualización de agosto.



Un fallo de escalada de privilegios de Windows recientemente detallado, rastreado como CVE-2026-66804, permitía que un usuario estándar con bajos privilegios plantara una DLL maliciosa y ejecutara código arbitrario con privilegios completos de NT AUTHORITY\SYSTEM, explotando una debilidad persistente en la forma en que Windows gestiona los registros del Modelo de Objetos de Componentes (COM).

El error, parcheado por Microsoft en su Martes de Parches de agosto, fue reportado por un investigador de Google Project Zero junto con otros 14 y resultó ser una corrección incompleta de un fallo anterior conocido como "Dark Elevator".

Fallo de COM de Windows

La raíz del problema reside en un registro de objeto COM colgante para el componente Windows CrossDevice, el servicio detrás de Phone Link, la sincronización del portapapeles y el intercambio de archivos entre dispositivos.

El objeto, registrado bajo el CLSID {E9F83CF2-E0C0-4CA7-AF01-E90C70BEF496}, se encontraba en la clave de registro de clases de todo el sistema, lo que lo hacía accesible para cada usuario de la máquina, incluidos los servicios SYSTEM.

Crucialmente, la DLL a la que apuntaba, %PROGRAMDATA%\CrossDevice\CrossDevice.Streaming.Source.dll, en realidad no existía en los sistemas afectados, y esa ruta se encuentra dentro de C:\ProgramData, un directorio donde cualquier usuario estándar puede crear carpetas y archivos.

Esa combinación permitía a un atacante plantar una DLL arbitraria en la ubicación faltante, preparando el objeto COM para cargar código controlado por el atacante en el momento en que fuera instanciado.

Esta no fue la primera vez que el registro de CrossDevice causó problemas. El error original, CVE-2026-50343, apodado "Dark Elevator" por investigadores de Calif, abusaba de permisos débiles de claves de registro para registrar la clase como un complemento de instalador y convencía al InstallService de nivel SYSTEM para que lo cargara en la memoria.

Microsoft solucionó el problema de InstallService en julio de 2026, pero la referencia COM colgante subyacente permaneció, obligando a los investigadores a buscar una ruta de activación alternativa.

Según Google Project Zero, la alternativa provino de una técnica muy conocida: abusar del marshalling COM personalizado. Cuando un método de interfaz COM se implementa fuera del proceso, el tiempo de ejecución transfiere sus parámetros a una llamada a procedimiento remoto, y los objetos pasados como parámetros se serializan en una estructura OBJREF.

Por defecto, COM transfiere por referencia, pero un objeto que implemente la interfaz IMarshal puede optar por la transferencia por valor y especificar un CLSID arbitrario para que se cargue durante la des-transferencia (unmarshaling).

Al apuntar ese CLSID a la clase CrossDevice colgante, un atacante podía forzar a un proceso privilegiado a cargar la DLL plantada automáticamente, antes de que el método objetivo llegara a ejecutarse.

OBJREF structure comparison
Comparación de la estructura OBJREF (Fuente de la imagen: Projectzero)

El detalle es que Microsoft anticipó este abuso. Desde Windows 8, los servicios pueden desactivar el marshalling personalizado utilizando la bandera EOAC_NO_CUSTOM_MARSHAL en CoInitializeSecurity o la configuración más fuerte COMGLB_UNMARSHALING_POLICY_STRONG a través de IGlobalOptions::Set.

Para tener éxito, un atacante necesita, por lo tanto, un servidor COM de SYSTEM privilegiado que olvide habilitar estos controles de endurecimiento.

El investigador localizó exactamente un objetivo así en el objeto Shell Create Object Handler (CLSID 135fd325-45b7-4c30-89f8-4386961669f0), un componente previamente estudiado y explotado que se ejecuta dentro de un proceso dllhost de SYSTEM con el marshalling personalizado aún permitido.

Debido a que el objeto no tiene un servicio de respaldo, no puede ser instanciado directamente; en su lugar, debe lanzarse a través de la tarea programada \Microsoft\Windows\Shell\CreateObjectTask iniciable por el usuario, emparejada con un ShellCreateObjectTaskReadyEvent global para mantenerlo activo.

Con el servidor SYSTEM en ejecución, el exploit simplemente pasa un objeto transferido falso a través de la única interfaz ICreateObject del objeto, activando una des-transferencia incondicional y cargando la DLL maliciosa en el proceso SYSTEM para una escalada de privilegios completa.

Microsoft califica el CVE-2026-66804 con una gravedad Alta y una puntuación CVSS de 7.8, explotable localmente por un usuario autenticado sin requerir interacción del usuario.

Desde entonces, ha aparecido públicamente código de exploit de prueba de concepto, y al menos un módulo de explotación comercial automatiza ahora la cadena de LOCAL SERVICE a SYSTEM, subrayando el riesgo práctico para los hosts no parcheados.

Deberías aplicar las actualizaciones acumulativas de agosto de 2026 sin demora, ya que la corrección elimina el registro colgante que permite el ataque.

Más allá del parche específico, la investigación es un recordatorio de que los registros COM colgantes siguen siendo una clase fértil y a menudo pasada por alto de errores de escalada de privilegios locales.

El mismo truco de marshalling que explota las DLL faltantes también puede bloquear o subvertir des-transferidores personalizados con errores, y tú puedes buscar proactivamente fallos similares escaneando clases COM en proceso cuyas DLL registradas no puedan resolverse en el disco y luego comprobando si un atacante podría plantar una.

Fuentes:
https://cybersecuritynews.com/windows-com-system-privilege-escalation/

0 comentarios :

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.