标签 WordPress Plugin 下的文章
- 作者: 纯情
- 时间:
- 分类: 资讯
- 评论
该漏洞由 Patchstack 于 2025 年 11 月 21 日保留,影响插件 4.0.49 及之前的所有版本,核心成因是访问控制安全级别配置不当,导致攻击者可绕过权限验证,未授权调用插件新闻订阅相关 REST API 接口,实现用户订阅状态篡改、非法订阅/退订等操作。
一、漏洞概述
●漏洞编号:CVE-2025-66128
●漏洞名称:WooCommerce Brevo Sendinblue 插件授权缺失漏洞
●漏洞类型:访问控制绕过(授权缺失)
●受影响组件:WooCommerce Brevo Sendinblue 插件(≤ 4.0.49 版本)
●影响环境:Kali Linux + Apache 2.4.65 + MariaDB 11.8.5 + PHP-FPM + WordPress
●漏洞核心路径:/wp-json/sendinblue/v1/subscription/update-status
●漏洞危害:未授权攻击者可篡改用户订阅状态、干扰营销活动,违反 GDPR 合规要求,损害用户隐私与品牌声誉
二、漏洞复现
利用CVE-2025-66128授权缺失漏洞,通过未授权POST请求直接调用目标API接口,验证漏洞可利用性:
直接触发目标漏洞路由
1. 无参数请求(验证参数校验缺失)
2. 非法参数格式请求(验证参数格式校验缺失)
3. 伪造Referer请求(验证Referer防护缺失)
4. 批量篡改订阅状态请求(验证批量操作无限制)
5. 路由无有效防护
6. 使用非授权IP,验证无IP限制
三、漏洞分析
CVE-2025-66128漏洞的核心根源在于ApiManager类的 add_rest_endpoints()方法中,所有REST API路由注册均未配置permission_callback权限验证回调函数,且回调逻辑内部无任何补充权限校验,导致未授权用户可直接调用各类敏感接口。
漏洞触发的关键逻辑链
1 路由注册触发:ApiManager类的add_hooks()方法(源码第45-84行)虽未直接注册路由,但结合主文件逻辑可知,插件初始化时会调用add_rest_endpoints()方法,完成所有API路由的注册;
2 权限校验缺失:WordPress REST API的register_rest_route()函数要求通过permission_callback参数定义权限校验逻辑,若未配置该参数,默认对所有用户(包括未授权游客)开放;
3 回调逻辑无补充校验:所有路由的回调函数(如save_settings()、disconnect_connection()、get_file_contents()等)内部均未添加用户登录状态、角色权限等校验逻辑,直接执行核心操作。
敏感接口无参数校验与权限隔离
get_file_contents()和 delete_attachment() 方法用于文件操作,虽做了基础文件名过滤,但未校验调用者权限,导致未授权用户可操作插件上传目录下的任意文件。
save_settings()和email_settings()方法用于修改插件核心配置与邮件设置,仅执行“读取请求体-更新选项”的简单逻辑,无任何权限校验与参数合法性校验。
api-manager.php中虽存在validate_api_key()方法(源码第497-517行)用于API密钥校验,但该方法未被任何路由的permission_callback复用,且仅针对密钥验证,未覆盖所有敏感接口,导致权限校验逻辑形同虚设。
四、漏洞防御
1为所有路由数组添加 permission 字段,注册路由时补充 permission_callback 参数:
2. 权限回调内直接调用现有 validate_api_key 方法,叠加管理员权限校验:
3. 在 ApiManager 类顶部新增常量定义,统一键名:
参考链接
ERROR: The request could not be satisfied
WooCommerce Brevo Sendinblue 插件授权缺失漏洞 CVE-2025-66128 详解 - qife - 博客园
https://avd.aliyun.com/detail?id=AVD-2025-66128