
Disclosure for CVE-2025-9886 and CVE-2025-9952
关于 CVE-2025-9886 和 CVE-2025-9952 的披露。
本仓库披露了在 Trinity Audio <= 5.20.1 中发现的一个漏洞,该插件由 sergiotrinity 开发的 WordPress 插件。
| CVE ID | 类型 | 组件 | 影响 |
|---|---|---|---|
| CVE-2025-9886 | 跨站请求伪造 | admin/inc/post-management.php | 在受害者会话下批量启用/禁用帖子的 Trinity Audio |
| CVE-2025-9952 | 反射型跨站脚本 | admin/inc/post-management.php | 任意脚本执行 |
受影响组件: 帖子管理页面处理器 (admin/inc/post-management.php)
攻击向量: 跨域 POST 到 wp-admin/admin.php?page=trinity_audio_post_management
触发条件: 已认证的管理员访问攻击者控制的页面,该页面自动提交精心构造的表单
影响: 攻击者利用管理员的权限强制进行批量状态更改(在所有帖子或日期范围内启用/禁用 Trinity Audio),损害完整性和可用性
受影响组件: 帖子管理页面处理器 (admin/inc/post-management.php)
攻击向量: 跨域 POST 到 wp-admin/admin.php?page=trinity_audio_post_management,其中包含 post-management-action=activate-all-posts-range、range-before-after=after 以及一个有效日期后跟 HTML。
触发条件: 已认证的管理员访问攻击者控制的页面,该页面自动提交构造的表单。必须存在至少一个在所提供日期之后发布的帖子。
影响: 任意 JavaScript 在管理员来源中执行,可实现会话窃取、设置操纵或 CSRF 链利用。
通过结合这两个漏洞,攻击者可以将用户引导至包含以下表单的站点,从而执行任意脚本。
<form method="POST" action="https://victim.example.com/wp-admin/admin.php?page=trinity_audio_post_management">
<input type="hidden" name="action" value="1">
<input type="hidden" name="post-management-action" value="activate-all-posts-range">
<input type="hidden" name="range-before-after" value="after">
<input type="hidden" name="range-date" value="2025-09-03<img src=x onerror=alert(document.domain)>">
</form>
<script>document.forms[0].submit();</script>
CSRF(CVE-2025-9886): 状态更改端点接受跨域请求,且没有 CSRF 防御。未进行 nonce 验证(check_admin_referer/wp_verify_nonce)和 Origin/Referer 验证。由于 cookie 会自动发送,攻击者可以在经过身份验证的用户会话下执行操作。
反射型 XSS(CVE-2025-9952): 帖子管理处理器(admin/inc/post-management.php)将 range-date POST 值直接插入成功提示中,未进行输出编码(未使用 esc_html()/wp_kses()),导致 HTML/JS 注入。
看起来只是 CSRF 和 Self XSS,但通过组合它们,一旦 CSRF 成功,就可以执行任意 JS。能够创建这样有趣的 PoC,我感到很开心。
姓名: MooseLove
角色: 独立安全研究员/漏洞猎人
联系方式: 应要求提供
此公告出于公共安全意识提供。可自由分享,需注明出处。