redteamfortress/CVE-2026-36425
GitHub: redteamfortress/CVE-2026-36425
披露 OPSWAT AppRemover 内核驱动 ardrv.sys 因缺少权限校验导致非特权本地用户可终止任意进程的漏洞公告。
Stars: 0 | Forks: 0
# CVE-2026-36425 — OPSWAT AppRemover Driver (ardrv.sys) 访问控制不当
| | |
|---|---|
| **CVE ID** | CVE-2026-36425 |
| **供应商** | OPSWAT, Inc. |
| **产品** | AppRemover Driver (`ardrv.sys`) |
| **受影响版本** | v2017.10.02.1551 及更早版本 |
| **漏洞类型** | 访问控制不当 (CWE-284) |
| **影响** | 未经授权的进程终止、拒绝服务、安全软件篡改、反取证 |
| **攻击向量** | 本地 |
| **所需权限** | 低(任意本地用户) |
| **测试环境** | Windows 10 / Windows 11 (x64) |
| **研究员** | Jehad Abudagga ([@j3h4ck](https://x.com/j3h4ck)) |
## 摘要
OPSWAT AppRemover 内核驱动(`ardrv.sys`,2017.10.02.1551 及更早版本)暴露了一个可由无特权本地用户访问的设备对象(`\\.\ardrv`)。该驱动的 IOCTL 处理程序 `0x2420031` 在未验证调用者权限、目标进程的保护状态,或其是否为关键系统进程的情况下,直接对调用者提供的目标执行进程终止。
因此,任何本地用户都可以打开该设备并请求终止任意进程(包括安全软件),从而导致拒绝服务、防御工具篡改以及反取证滥用。
## 受影响组件
- **驱动:** `ardrv.sys`
- **设备:** `\\.\ardrv`(可由非管理员调用者从用户模式访问)
- **IOCTL 处理程序:** `0x2420031`
## 技术细节
该驱动注册了一个设备对象和分发例程,用于处理来自用户模式的设备 I/O 控制请求。IOCTL `0x2420031` 会进入一个进程终止代码路径,该路径作用于请求中直接提供的目标标识符。
此处理程序实现了三种不同的终止策略:
1. **目标地址空间的内存破坏** — 例程通过 `KeAttachProcess` 附加到目标进程上下文,并使用 `0xCC` 覆盖其大块内存区域(约 16 MB),从而破坏进程的稳定性或导致其崩溃。
2. **Job 对象终止** — 将目标与一个 Job 对象关联,随后终止该 Job 对象,从而连同其子进程树一起杀死该进程。
3. **直接进程终止** — 对目标进行标准的 `ZwTerminateProcess` 调用。
核心安全缺陷在于执行这些操作之前**完全缺乏任何授权或安全检查**。具体而言,该处理程序没有验证:
- **调用进程的权限级别**(无 token / 完整性级别检查),
- **目标的保护状态**(Protected Process / Protected Process Light,即 PP/PPL),或
- 目标是否为终止后会导致操作系统不稳定的**关键系统进程**。
由于标准(非管理员)用户即可访问该设备对象,这使得一个经过合法签名的驱动程序变成了可用于终止任意进程的本地原语。
## 影响
无特权的本地攻击者可以:
- **禁用端点安全软件**(EDR/AV 代理、监控服务),通过终止其进程,在展开进一步攻击行动之前削弱主机的防御态势。
- **造成拒绝服务**,通过终止关键进程,可能导致系统崩溃。
- **支持反取证工作流**,通过杀死日志记录、遥测或响应工具。
此类问题是“自带漏洞驱动程序”(BYOVD) 滥用的典型特征:由于 `ardrv.sys` 是一个有效签名的驱动程序,即使在没有安装该供应商软件的系统上也可能被加载,从而将影响范围扩大到未实际运行 AppRemover 的主机之外。
## 额外观察
在分析过程中,观察到同一驱动程序还暴露了其他 IOCTL 处理程序,这些处理程序似乎提供了额外的敏感原语:
| IOCTL | 观察到的能力 |
|---|---|
| `0x242002D` | 任意注册表写入 |
| `0x2420035` / `0x2420039` | 硬件端口 I/O(读/写) |
| `0x242003D` | 强制文件删除 |
此处列出这些内容仅为确保完整性。它们在 CVE 程序下的处理正在与 CVE 分配团队单独协调,并可能在不同的标识符下进行跟踪。
## 建议
**对于防御者 / 系统所有者:**
- 将 `ardrv.sys`(v2017.10.02.1551 及更早版本)视为存在漏洞的驱动程序。如果不需要 AppRemover 功能,请确保该驱动程序不存在或无法加载。
- 应用或扩展**易受攻击的驱动程序黑名单**(例如 Microsoft 推荐的驱动程序阻止规则 / HVCI 强制实施的黑名单),以防止受影响的驱动程序版本被加载。
- 监控未实际运行 OPSWAT AppRemover 的系统上是否意外加载了 `ardrv.sys`。
**对于供应商:**
- 限制对设备对象的访问,以便只有具备适当权限的调用者才能发出控制请求。
- 在 IOCTL 分发路径中强制执行授权检查(调用者完整性/权限验证)。
- 拒绝针对受保护(PP/PPL)进程和关键系统进程的终止请求。
## 披露时间表
| 日期 | 事件 |
|---|---|
| 2026-02-25 | 向 CVE 分配团队提交了 CVE 请求 |
| 2026-06-16 | 分配了 CVE-2026-36425 |
| 2026-06-17 | 发布公开安全公告(本文档) |
## 参考
- CVE Record: https://www.cve.org/CVERecord?id=CVE-2026-36425
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-36425
## 致谢
由 **Jehad Abudagga** 发现并报告
- X / Twitter: [@j3h4ck](https://x.com/j3h4ck)
- Medium: [@jehadbudagga](https://medium.com/@jehadbudagga)
标签:0day挖掘, Web报告查看器, Windows驱动, 内核安全, 拒绝服务, 权限控制缺陷, 漏洞分析, 漏洞披露, 路径探测