
Divulgación para CVE-2025-9886 y CVE-2025-9952
Divulgación de CVE-2025-9886 y CVE-2025-9952.
Este repositorio divulga una vulnerabilidad descubierta en Trinity Audio <= 5.20.1, plugin de WordPress desarrollado por sergiotrinity.
| CVE ID | Tipo | Componente | Impacto |
|---|
| CVE-2025-9886 | Falsificación de solicitudes entre sitios | admin/inc/post-management.php | Habilitar/deshabilitar en masa Trinity Audio en publicaciones bajo la sesión de la víctima |
| CVE-2025-9952 | Cross-Site Scripting Reflejado | admin/inc/post-management.php | Ejecución arbitraria de scripts |
Componente Afectado: Manejador de la página de gestión de publicaciones (admin/inc/post-management.php)
Vector de Ataque: POST de origen cruzado a wp-admin/admin.php?page=trinity_audio_post_management
Desencadenante: Un administrador autenticado visita una página controlada por el atacante que envía automáticamente un formulario manipulado
Impacto: El atacante fuerza cambios de estado masivos (habilitar/deshabilitar Trinity Audio en todas las publicaciones o en un rango de fechas) con los privilegios del administrador, afectando la integridad y potencialmente la disponibilidad
Componente Afectado: Manejador de la página de gestión de publicaciones (admin/inc/post-management.php)
Vector de Ataque: POST de origen cruzado a wp-admin/admin.php?page=trinity_audio_post_management con post-management-action=activate-all-posts-range, range-before-after=after, y una fecha válida seguida de HTML.
Desencadenante: Un administrador autenticado visita una página controlada por el atacante que envía automáticamente el formulario manipulado. Debe existir al menos una publicación publicada después de la fecha proporcionada.
Impacto: JavaScript arbitrario se ejecuta en el origen del administrador, permitiendo el robo de sesión, la manipulación de ajustes o el encadenamiento de CSRF.
Al combinar estas dos vulnerabilidades, un atacante puede ejecutar scripts arbitrarios dirigiendo a los usuarios a un sitio que contenga el siguiente formulario.
<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): El endpoint que modifica el estado acepta solicitudes de origen cruzado sin defensas CSRF. No hay verificación de nonce (check_admin_referer/wp_verify_nonce) ni validación de Origin/Referer. Debido a que las cookies se envían automáticamente, un atacante puede hacer que se ejecuten acciones en la sesión de un usuario autenticado.
XSS Reflejado(CVE-2025-9952): El manejador de gestión de publicaciones (admin/inc/post-management.php) interpola el valor POST range-date en el aviso de éxito sin codificación de salida (sin esc_html()/wp_kses()), permitiendo la inyección de HTML/JS.
A simple vista parece solo CSRF y SelfXSS, pero al combinarlos, si se consigue que el CSRF tenga éxito, se puede ejecutar JS arbitrario. Fue divertido poder crear un PoC tan interesante.
Nombre: MooseLove
Rol: Investigador de seguridad independiente / cazador de bugs
Contacto: Disponible bajo petición
Este aviso se proporciona para la concienciación pública sobre seguridad. Se puede compartir libremente con atribución.