
CVE-2026-36425 OPSWAT AppRemover (ardrv.sys) improper access control advisory
A signed OPSWAT kernel driver that kills any process on demand. No admin rights needed, no privilege checks, no questions asked. Point it at an EDR, an antivirus, a PPL-protected process and it dies. Three different kill methods, all running from kernel mode, all triggered by a single IOCTL from any local user. 16 vulnerable driver variants identified, all validly signed.
⚠️ This repository is for educational and research purposes only. The author is not responsible for any misuse of the information or tools provided.
📝 Blog Post: Introducing CVE-2026-36425 | OPSWAT EDR Terminator
In the blog post we walk through the full reverse engineering process of the driver in IDA Pro, from the DriverEntry setup to the IOCTL dispatch chain, and break down the three different process termination methods the driver uses under the hood. We also demonstrate a live test against one of the famous EDR, loading the signed driver and terminating the agent from kernel mode.
| Field | Details |
|---|---|
| CVE | CVE-2026-36425 |
| Vendor | OPSWAT, Inc. |
| Product | AppRemover Driver (ardrv.sys) |
| Affected Versions | v2017.10.02.1551 and earlier |
| Vulnerability Type | Improper Access Control (CWE-284) |
| Impact | Arbitrary process termination, EDR bypass, denial of service |
| Attack Vector | Local |
| Privileges Required | Low (any local user) |
| Tested On | Windows 10 / Windows 11 (x64) |
| Found By | Jehad Abudagga (@j3h4ck) |
The OPSWAT AppRemover kernel driver (ardrv.sys) exposes a device object (\\.\ardrv) that is accessible to any local user without privilege validation. The driver's IOCTL handler 0x2420031 performs process termination on a caller-supplied PID using three distinct methods:
KeAttachProcess and overwrites the first 4096 pages with 0xCC (INT3 breakpoints), forcing a crash.ObOpenObjectByPointer and calls ZwTerminateProcess for high PID values.ZwTerminateJobObject as a fallback.All three methods execute in kernel context with no caller validation, no privilege checks, and no protection for critical or PPL processes. This can be abused to terminate EDR/AV agents and other security software.
ardrvkiller.exe <PID>
sc.exe create ardrv binPath="C:\path\to\ardrv_XX.sys" type=kernel
sc.exe start ardrv
ardrvkiller.exe 1234
16 variants identified, all signed by OPSWAT, all sharing the same vulnerability.
| Date | Event |
|---|---|
| 2026-02-25 | CVE request submitted to the CVE Assignment Team |
| 2026-06-16 | CVE-2026-36425 assigned |
| 2026-07-17 | Public advisory published |
| 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 |