
Offenlegung für CVE-2025-9886 und CVE-2025-9952
Offenlegung von CVE-2025-9886 und CVE-2025-9952.
Dieses Repository legt eine Schwachstelle offen, die in Trinity Audio <= 5.20.1, einem WordPress-Plugin von sergiotrinity, entdeckt wurde.
| CVE-ID | Typ | Komponente | Auswirkung |
|---|
| CVE-2025-9886 | Cross-Site Request Forgery | admin/inc/post-management.php | Massenhaftes Aktivieren/Deaktivieren von Trinity Audio auf Beiträgen unter der Sitzung des Opfers |
| CVE-2025-9952 | Reflektiertes Cross-Site Scripting | admin/inc/post-management.php | Beliebige Skriptausführung |
Betroffene Komponente: Seitenhandler für Beitragsverwaltung (admin/inc/post-management.php)
Angriffsvektor: Cross-Origin-POST an wp-admin/admin.php?page=trinity_audio_post_management
Auslöser: Ein authentifizierter Admin besucht eine vom Angreifer kontrollierte Seite, die ein manipuliertes Formular automatisch absendet
Auswirkung: Der Angreifer erzwingt massenhafte Statusänderungen (Aktivieren/Deaktivieren von Trinity Audio auf allen Beiträgen oder einem Datumsbereich) mit den Rechten des Admins, was die Integrität und möglicherweise die Verfügbarkeit beeinträchtigt
Betroffene Komponente: Seitenhandler für Beitragsverwaltung (admin/inc/post-management.php)
Angriffsvektor: Cross-Origin-POST an wp-admin/admin.php?page=trinity_audio_post_management mit post-management-action=activate-all-posts-range, range-before-after=after und einem gültigen Datum gefolgt von HTML.
Auslöser: Ein authentifizierter Admin besucht eine vom Angreifer kontrollierte Seite, die das manipulierte Formular automatisch absendet. Es muss mindestens ein Beitrag existieren, der nach dem angegebenen Datum veröffentlicht wurde.
Auswirkung: Beliebiges JavaScript wird im Ursprung des Admins ausgeführt, was Sitzungsdiebstahl, Einstellungsmanipulation oder CSRF-Verkettung ermöglicht.
Durch die Kombination dieser beiden Schwachstellen kann ein Angreifer beliebige Skripte ausführen, indem er Benutzer auf eine Seite mit folgendem Formular leitet.
<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): Der zustandsändernde Endpunkt akzeptiert Cross-Origin-Anfragen ohne CSRF-Abwehrmaßnahmen. Es gibt keine Nonce-Überprüfung (check_admin_referer/wp_verify_nonce) und keine Origin/Referer-Validierung. Da Cookies automatisch gesendet werden, kann ein Angreifer Aktionen unter der Sitzung eines authentifizierten Benutzers auslösen.
Reflektiertes XSS (CVE-2025-9952): Der Handler für die Beitragsverwaltung (admin/inc/post-management.php) fügt den POST-Wert range-date ohne Ausgabekodierung (kein esc_html()/wp_kses()) in die Erfolgsmeldung ein, was HTML/JS-Injection ermöglicht.
Auf den ersten Blick nur eine CSRF und ein Self-XSS, aber durch deren Kombination kann man bei erfolgreicher CSRF beliebiges JS ausführen. Es hat Spaß gemacht, ein solch interessantes PoC zu erstellen.
Name: MooseLove
Rolle: Unabhängiger Sicherheitsforscher / Bug Hunter
Kontakt: Auf Anfrage erhältlich
Dieses Advisory wird zur öffentlichen Sensibilisierung für Sicherheit bereitgestellt. Frei zur Weitergabe mit Quellenangabe.