CVE-2025-5235
📋 TL;DR
The OpenSheetMusicDisplay WordPress plugin has a stored XSS vulnerability in all versions up to 1.4.0. Authenticated attackers with Contributor access or higher can inject malicious scripts via the 'className' parameter, which execute when users view affected pages. This affects all WordPress sites using vulnerable versions of this plugin.
💻 Affected Systems
- OpenSheetMusicDisplay WordPress Plugin
📦 What is this software?
Opensheetmusicdisplay by Opensheetmusicdisplay
⚠️ Risk & Real-World Impact
Worst Case
Attackers could steal admin credentials, deface websites, redirect users to malicious sites, or install backdoors for persistent access.
Likely Case
Attackers with contributor accounts inject malicious scripts to steal session cookies or redirect users to phishing pages.
If Mitigated
With proper input validation and output escaping, no script execution occurs, though malicious content may still be stored.
🎯 Exploit Status
Exploitation requires authenticated access but is technically simple once access is obtained.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Versions after 1.4.0
Vendor Advisory: https://wordpress.org/plugins/opensheetmusicdisplay/#developers
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins > Installed Plugins. 3. Find OpenSheetMusicDisplay and click 'Update Now'. 4. Verify update to version after 1.4.0.
🔧 Temporary Workarounds
Disable Plugin
allTemporarily disable the vulnerable plugin until patched.
wp plugin deactivate opensheetmusicdisplay
Restrict User Roles
allLimit contributor and author roles to trusted users only.
🧯 If You Can't Patch
- Implement web application firewall (WAF) rules to block XSS payloads in className parameter
- Regularly audit user accounts and remove unnecessary contributor/author roles
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin panel > Plugins > Installed Plugins for OpenSheetMusicDisplay version 1.4.0 or earlier.
Check Version:
wp plugin get opensheetmusicdisplay --field=version
Verify Fix Applied:
Verify plugin version is higher than 1.4.0 in WordPress admin panel.
📡 Detection & Monitoring
Log Indicators:
- Unusual POST requests to wp-admin with className parameter containing script tags
- Multiple failed login attempts followed by successful contributor login
Network Indicators:
- Outbound connections to suspicious domains after visiting pages with sheet music content
SIEM Query:
source="wordpress.log" AND (className AND (script OR javascript OR onload OR onerror))
🔗 References
- https://github.com/opensheetmusicdisplay/opensheetmusicdisplay/blob/develop/CHANGELOG.md
- https://plugins.trac.wordpress.org/browser/opensheetmusicdisplay/trunk/opensheetmusicdisplay.php#L473
- https://plugins.trac.wordpress.org/changeset/3301757/
- https://plugins.trac.wordpress.org/changeset/3301757/#file48
- https://wordpress.org/plugins/opensheetmusicdisplay/#developers
- https://www.wordfence.com/threat-intel/vulnerabilities/id/a45417ce-d5dd-4706-adbb-d44670de6eb7?source=cve