
CVE-2026-36425 OPSWAT AppRemover (ardrv.sys): aviso de control de acceso inadecuado
Un controlador kernel de OPSWAT firmado que mata cualquier proceso bajo demanda. Sin necesidad de derechos de administrador, sin comprobaciones de privilegios, sin hacer preguntas. Apúntalo a un EDR, a un antivirus, a un proceso protegido por PPL y muere. Tres métodos de terminación diferentes, todos ejecutándose en modo kernel, todos activados por una única IOCTL de cualquier usuario local. Se identificaron 16 variantes de controladores vulnerables, todas válidamente firmadas.
⚠️ Este repositorio es solo para fines educativos y de investigación. El autor no es responsable del mal uso de la información o las herramientas proporcionadas.
📝 Entrada del blog: Introducing CVE-2026-36425 | OPSWAT EDR Terminator
En la entrada del blog recorremos todo el proceso de ingeniería inversa del controlador en IDA Pro, desde la configuración de DriverEntry hasta la cadena de despacho de IOCTL, y desglosamos los tres métodos diferentes de terminación de procesos que el controlador usa internamente. También demostramos una prueba en vivo contra uno de los EDR más conocidos, cargando el controlador firmado y terminando el agente desde modo kernel.
| Campo | Detalles |
|---|---|
| CVE | CVE-2026-36425 |
| Vendor | OPSWAT, Inc. |
| Product | AppRemover Driver (ardrv.sys) |
| Versiones afectadas | v2017.10.02.1551 y anteriores |
| Tipo de vulnerabilidad | Control de acceso inadecuado (CWE-284) |
| Impacto | Terminación arbitraria de procesos, evasión de EDR, denegación de servicio |
| Vector de ataque | Local |
| Privilegios requeridos | Bajo (cualquier usuario local) |
| Probado en | Windows 10 / Windows 11 (x64) |
| Encontrado por | Jehad Abudagga (@j3h4ck) |
El controlador kernel de AppRemover de OPSWAT (ardrv.sys) expone un objeto de dispositivo (\\.\ardrv) accesible para cualquier usuario local sin validación de privilegios. El manejador de IOCTL 0x2420031 del controlador realiza la terminación de procesos sobre un PID proporcionado por el llamador usando tres métodos distintos:
KeAttachProcess y sobrescribe las primeras 4096 páginas con 0xCC (puntos de interrupción INT3), forzando un fallo del sistema.ObOpenObjectByPointer y llama a ZwTerminateProcess para valores de PID altos.ZwTerminateJobObject como alternativa.Los tres métodos se ejecutan en contexto de kernel sin validación del llamador, sin comprobaciones de privilegios y sin protección para procesos críticos o PPL. Esto puede ser explotado para terminar agentes de EDR/AV y otro software de seguridad.
ardrvkiller.exe <PID>
sc.exe create ardrv binPath="C:\path\to\ardrv_XX.sys" type=kernel
sc.exe start ardrv
ardrvkiller.exe 1234
Se identificaron 16 variantes, todas firmadas por OPSWAT, todas compartiendo la misma vulnerabilidad.
| Fecha | Evento |
|---|---|
| 2026-02-25 | Solicitud de CVE enviada al Equipo de Asignación de CVE |
| 2026-06-16 | CVE-2026-36425 asignado |
| 2026-07-17 | Aviso público publicado |
| Driver | SHA256 |
|---|
| ardrv_1.sys | 0B4C5A2D24810748DE8CE6FB3D6A3E8ACD0305272D6425FA054632410D23EC80 |
| ardrv_2.sys | 1C5129B4D63F2D5252B5B02A0A7D655DAC3B6EAC23DD4ED92B4DD55F243387FF |
| ardrv_3.sys | 4D07B6423F4D5D80D2DAEC8FAED7ECC40855339BEE95C26289179C1FD083078E |
| ardrv_4.sys | 6B208CE68BA3F6C788BD89BA677EBF1C2407A55F9F43A42EA7207635634BAF66 |
| ardrv_5.sys | 07C5209BF83065FE760F4FEE4ED2308B0C523671F68CA73A3854C2C8C28C0541 |
| ardrv_6.sys | 7B3F8FA5844D829142002D47C2DF8573C7D67DEFE4171414C6A015A38AFE55F5 |
| ardrv_7.sys | 9F326EDE322930A7D5E149FA8720802B0623C1972DC54E41A2A73608FB6810DD |
| ardrv_8.sys | 34AD901B4FEA05DA301EBB619FA48CFAC058720E41DB71B3FCA1C47763BAE066 |
| ardrv_9.sys | 4574CF50DBE2FBCE849881E8875297753CE2E240C312E01B3B461D80DF063BBE |
| ardrv_10.sys | 75454A8583EA2A5B6C7711E9BF32C61B8A7E902F5C429FCBE36673CCC076E910 |
| ardrv_11.sys | 551254A5E59DF92E6049867162633E3E476CDF5999D05C3E23A57C98BE03F475 |
| ardrv_12.sys | 7504887E1E195AD585CFFA5B6A5034161A7CC49F351123D60DEF79302BDB8326 |
| ardrv_13.sys | 33233988D8C735FDF1162E043ED1E6FFF62E7D6102C5BD300561D71FD32526F3 |
| ardrv_14.sys | 59080957DE2519F5013BE8CCF0B9012DC97AD692E69578CB3F60148C528BDBB1 |
| ardrv_15.sys | D82108E6578F4866D7114D6847282C04F0B146809BC66DED3300FE993B42D20F |
| ardrv_16.sys | E3CB9F52A4FDE53FC886DC35D41BB36E8B993C74826389D22440B92D94480A6D |