标签 授权缺失 下的文章


该漏洞由 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. 无参数请求(验证参数校验缺失)

image.png







2. 非法参数格式请求(验证参数格式校验缺失)

image.png





3. 伪造Referer请求(验证Referer防护缺失)

image.png





4. 批量篡改订阅状态请求(验证批量操作无限制)

image.png





5. 路由无有效防护



image.png





6. 使用非授权IP,验证无IP限制

image.png







三、漏洞分析

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