lorenzofradeani/CVE-2026-40776
GitHub: lorenzofradeani/CVE-2026-40776
CVE-2026-40776是WordPress Eventin插件中的未认证访问控制绕过和IDOR漏洞,可导致客户订单PII泄露和订单伪造。
Stars: 2 | Forks: 0
# CVE-2026-40776
## Eventin (wp-event-solution) 访问控制缺陷
[](https://www.cve.org/CVERecord?id=CVE-2026-40776)
[](https://patchstack.com/database/wordpress/plugin/wp-event-solution/vulnerability/wordpress-eventin-plugin-4-1-8-broken-access-control-vulnerability)
[](https://cwe.mitre.org/data/definitions/862.html)
[](https://wordpress.org/plugins/wp-event-solution/)
[](LICENSE)
未认证的 **PII泄露** 和 **订单伪造** 漏洞存在于 [Eventin](https://wordpress.org/plugins/wp-event-solution/) WordPress插件中(10,000+ 活跃安装)。一个公开的 REST 端点向任何访问者分发 `wp_rest` nonce,而三个下游权限回调接受该 nonce 作为认证的替代品——这使得每个客户订单端点的授权机制完全失效。
## 一目了然
| 字段 | 值 |
|---|---|
| **CVE** | CVE-2026-40776 |
| **Patchstack PSID** | `85de025d71e7` |
| **CWE** | [CWE-862 — 缺失授权](https://cwe.mitre.org/data/definitions/862.html) |
| **CVSS v3.1** | **7.5 (高危)** |
| **插件** | Eventin — 日历活动、活动预订、门票与注册 (`wp-event-solution`) |
| **受影响版本** | `<= 4.1.8` |
| **已在版本中修复** | `4.1.9` |
| **活跃安装数** | 10,000+ |
| **需要认证** | 无(未认证) |
| **需要用户交互** | 无 |
| **报告者** | Lorenzo Fradeani — 独立安全研究员 |
| **协调方** | [Patchstack](https://patchstack.com) |
| **公开披露** | 2026-04-29 |
## 概述
三个问题组合在一起构成了完整的授权绕过:
1. **公开的 nonce 分发器。** `core/Admin/hooks.php`(第 68-77 行)使用 `permission_callback => '__return_true'` 注册了 `/wp-json/eventin/v1/nonce`,并向任何未认证的调用者返回一个新生成的 `wp_rest` nonce。
2. **将 nonce 作为认证的权限回调。** `core/Order/` 中的三个控制器接受该 nonce 作为唯一的授权检查:
- `OrderController::get_item_permissions_check`(第 146-148 行)——`current_user_can(...) || wp_verify_nonce(...)`;`||` 使得仅凭 nonce 就足够。
- `OrderController::create_item_permissions_check`(第 476-478 行)——仅使用 `wp_verify_nonce(...)`。
- `PaymentController::create_payment_permission_check`(第 66-70 行)——仅使用 `wp_verify_nonce(...)`。
3. **IDOR + 完全开放的座位预订端点。** `OrderController::get_item`(第 310-317 行)按顺序 WordPress 文章 ID 加载任何订单,且不验证所有权;`/book-seats`(第 129-137 行)使用 `permission_callback => function() { return true; }`(完全无认证)。
端到端而言,只需要四个未认证请求即可泄露所有客户订单(完整姓名、电子邮件、电话号码、支付方式、参会者名单)并伪造新订单。请参阅 [`ADVISORY.md`](ADVISORY.md) 获取完整技术分析,以及 [`poc/poc-eventin.sh`]( 获取可复现的 PoC。
## 缓解措施
将 `wp-event-solution` 更新至 **4.1.9** 或更高版本。对于旧版本,没有版本内的解决方法,只能禁用插件或在 Web 服务器 / WAF 层阻止受影响的 REST 路由(`/wp-json/eventin/v1/nonce`、`/wp-json/eventin/v2/orders*`、`/wp-json/eventin/v2/payments`、`/wp-json/eventin/v2/orders/book-seats`)。
## 仓库内容
```
.
├── README.md this file
├── ADVISORY.md full technical advisory + code review
├── LICENSE MIT
├── poc/
│ └── poc-eventin.sh 4-step bash PoC against a local lab
└── screenshots/
├── poc1-idor-pii-leak.png IDOR read of order #21 with full PII
├── poc2-no-nonce-blocked.png same request without nonce → 401
└── poc3-fake-order-created.png unauthenticated POST creating a fake order
```
## 披露时间线
| 日期 | 事件 |
|---|---|
| 2026-03-10 | 报告给 Patchstack |
| 2026-04-07 | 供应商发布 Eventin 4.1.9(修复) |
| 2026-04-13 | 协调里程碑(Patchstack) |
| 2026-04-29 | 公开披露(Patchstack advisory) |
| 2026-05-01 | 第三方追踪器开始收录(WP-Firewall、Managed-WP、SolidWP) |
| 2026-05-04 | 本仓库发布 |
## 参考资料
- 完整分析(权威):
- Patchstack advisory:
- wordpress.org 上的插件:
- CWE-862 — 缺失授权:
## 负责任的使用
本材料发布用于防御和教育目的——帮助 WordPress 网站运营者识别风险,帮助插件开发者避免同样的错误(将 CSRF nonce 视为认证),并记录一个真实案例,说明权限回调中的 `||` 短路如何导致授权失效。**请勿对您不拥有或未获得明确书面授权测试的系统运行 PoC。**
## 许可证
[MIT](LICENSE)
标签:Broken Access Control, CISA项目, CVE-2026-40776, CVSS 7.5, CWE-862, Eventin, IDOR, nonce验证缺陷, PII泄露, REST API漏洞, WordPress安全, WordPress插件漏洞, wp-event-solution, 个人信息泄露, 安全漏洞, 应用安全, 授权绕过, 插件漏洞, 操作系统监控, 文件完整性监控, 无认证访问, 未授权访问, 网络安全, 订单伪造, 访问控制缺失, 隐私保护, 高危漏洞