0xdak/CVE-2026-32136_exploit

GitHub: 0xdak/CVE-2026-32136_exploit

针对 AdGuard Home < 0.107.73 版本 h2c 升级认证绕过漏洞(CVE-2026-32136,CVSS 9.8)的概念验证利用工具,可通过 HTTP/2 明文升级绕过身份验证读取管理端点敏感数据。

Stars: 0 | Forks: 0

# CVE-2026-32136_exploit - AdGuard Home h2c 升级身份验证绕过 | | | |---|---| | **CVE** | [CVE-2026-32136](https://nvd.nist.gov/vuln/detail/CVE-2026-32136) | | **CVSS** | 9.8 (严重) — `AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H` | | **CWE** | CWE-287 (不当的身份验证) | | **受影响版本** | AdGuard Home `< 0.107.73` (PoC 在 `v0.107.72` 上测试) | | **已修复版本** | `v0.107.73` ([commit `c003e9f9c0`](https://github.com/AdguardTeam/AdGuardHome/commit/c003e9f9c04311a13ca7a873a8437f80711102a5)) | | **安全通报** | [GHSA-5fg6-wrq4-w5gh](https://github.com/AdguardTeam/AdGuardHome/security/advisories/GHSA-5fg6-wrq4-w5gh) | ## 漏洞描述 `internal/home/web.go` 中的 HTTP 服务器将身份验证中间件包装在 `h2c.NewHandler` 的**外部**。当客户端向公共路径(例如 `/login.html`)发送带有 `Upgrade: h2c` 头部的 HTTP/1.1 请求时,身份验证中间件会将其放行,然后 `h2c.NewHandler` 接管 TCP 连接以切换到 HTTP/2。随后在已升级连接上传输的每个 HTTP/2 stream 都会直接分发给内部 mux,而无需经过身份验证中间件。此时,任何 `/control/*` 管理端点都可以在同一个 socket 上未经身份验证直接访问。 该补丁将身份验证中间件移动到了 `h2c.NewHandler` 内部的 handler 中,因此明文升级后的 HTTP/2 帧会与 HTTP/1.1 请求经过相同的身份验证检查。 ## 注意事项 - `curl --http2-prior-knowledge` **不会**触发此漏洞 —— 服务器的 HTTP/1.1 层会返回 `401` 并拒绝原始的 HTTP/2 preface。 - 在 `/control/login` 上进行升级虽然也会返回 `101 Switching Protocols`,但 stream 1 上的 `404` (仅限 POST 的端点) 会污染后续的 stream。请使用能返回 `200 OK` 的静态路径(例如 `/login.html`)。 ## 用法 ``` # Kali / Debian / Ubuntu sudo apt install -y python3-h2 python3 CVE-2026-32136.py [port] [path] ``` 默认值:`port=80`,`path=/control/filtering/status`。 ### 示例 ``` $ python3 CVE-2026-32136.py 192.168.1.5 80 /control/filtering/status | jq .user_rules [+] h2c upgrade successful — connection is now HTTP/2 [+] response status: 200 [ "||tracking.corp.example^", "||analytics.internal.example^", ... ] ``` `stdout` 输出的是原始响应主体;状态消息会写入 `stderr`,以便输出可以通过管道干净地传递给 `jq`。 ### 其他可尝试的端点 | 端点 | 返回内容 | |---|---| | `/control/filtering/status` | 过滤列表 + `user_rules` | | `/control/status` | 服务器状态,监听接口 | | `/control/clients` | DHCP / DNS 客户端列表 | | `/control/dns_info` | 上游 DNS 服务器 | | `/control/querylog` | DNS 查询日志 (通常包含内部主机名) | ## 缓解措施 将 AdGuard Home 升级到 `0.107.73` 或更高版本。 ## 参考文献 - VulnTracker: - GHSA: - 补丁: - NVD: - AdGuard Home 发布版本: ## 免责声明 此概念验证代码仅出于教育和防御性研究目的发布。请勿对您不拥有或未获得明确授权测试的系统运行此代码。
标签:0day, AdGuard Home, CISA项目, CTF学习, CVE-2026-32136, CWE-287, Exploit, h2c升级, HTTP/2, PoC, Python, Web报告查看器, 中间件安全, 内网渗透, 协议降级, 无后门, 暴力破解, 未授权访问, 漏洞分析, 网络安全, 网络设备漏洞, 路径探测, 身份验证绕过, 逆向工具, 隐私保护