WaveSurfer-WP Security & Risk Analysis

wordpress.org/plugins/wavesurfer-wp

Customizable HTML5 Audio controller with waveform preview (mixed or split channels), using WordPress native audio and playlist shortcode.

400 active installs v2.8.4 PHP + WP 4.0+ Updated Feb 4, 2026
audiomediaplayervisualizationwaveform
99
A · Safe
CVEs total1
Unpatched0
Last CVEFeb 5, 2026
Safety Verdict

Is WaveSurfer-WP Safe to Use in 2026?

Generally Safe

Score 99/100

WaveSurfer-WP has a strong security track record. Known vulnerabilities have been patched promptly.

1 known CVELast CVE: Feb 5, 2026Updated 1mo ago
Risk Assessment

The wavesurfer-wp plugin exhibits a generally good security posture based on the provided static analysis. The complete absence of AJAX handlers, REST API routes, shortcodes, and cron events significantly limits the attack surface. Furthermore, the fact that all SQL queries are prepared statements and there are no dangerous functions or file operations suggests robust coding practices in these areas. The presence of nonce and capability checks is also a positive indicator of security awareness.

However, a significant concern is the 43% of output escaping, which indicates that a substantial portion of user- or data-driven output is not being properly sanitized. This leaves the plugin vulnerable to Cross-Site Scripting (XSS) attacks, as evidenced by its vulnerability history. While there are no currently unpatched vulnerabilities, the past CVE was an XSS type, and the fact that a medium severity vulnerability existed in the past, combined with the current unescaped output, suggests a recurring risk.

In conclusion, while the plugin has strong foundational security measures and a clean slate in terms of unpatched CVEs, the significant amount of unescaped output represents a clear and present danger for XSS vulnerabilities. This weakness, coupled with a history of similar vulnerabilities, necessitates careful monitoring and remediation.

Key Concerns

  • Unescaped output
  • Medium severity vulnerability history
Vulnerabilities
1

WaveSurfer-WP Security Vulnerabilities

CVEs by Year

1 CVE in 2026
2026
Patched Has unpatched

Severity Breakdown

Medium
1

1 total CVE

CVE-2026-1909medium · 6.4Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

WaveSurfer-WP <= 2.8.3 - Authenticated (Contributor+) Stored Cross-Site Scripting via 'src' Shortcode Attribute

Feb 5, 2026 Patched in 2.8.4 (1d)
Code Analysis
Analyzed Mar 16, 2026

WaveSurfer-WP Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
0 prepared
Unescaped Output
13
10 escaped
Nonce Checks
1
Capability Checks
1
File Operations
0
External Requests
0
Bundled Libraries
0

Output Escaping

43% escaped23 total outputs
Attack Surface

WaveSurfer-WP Attack Surface

Entry Points0
Unprotected0
WordPress Hooks 12
actioninitwavesurfer-wp.php:67
actionadmin_menuwavesurfer-wp.php:109
actionnetwork_admin_menuwavesurfer-wp.php:113
actionnetwork_admin_edit_update_network_optionswavesurfer-wp.php:114
actionadmin_initwavesurfer-wp.php:117
actionadmin_enqueue_scriptswavesurfer-wp.php:120
actionwavesurfer_wp_display_premium_pagewavesurfer-wp.php:123
actionwavesurfer_wp_display_donation_taglinewavesurfer-wp.php:126
filterwp_audio_shortcode_overridewavesurfer-wp.php:130
filterpost_playlistwavesurfer-wp.php:131
actionwp_enqueue_scriptswavesurfer-wp.php:134
actionwp_enqueue_scriptswavesurfer-wp.php:135
Maintenance & Trust

WaveSurfer-WP Maintenance & Trust

Maintenance Signals

WordPress version tested5.4.19
Last updatedFeb 4, 2026
PHP min version
Downloads22K

Community Trust

Rating100/100
Number of ratings11
Active installs400
Developer Profile

WaveSurfer-WP Developer Profile

X-Raym

2 plugins · 410 total installs

94
trust score
Avg Security Score
92/100
Avg Patch Time
1 days
View full developer profile
Detection Fingerprints

How We Detect WaveSurfer-WP

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/wavesurfer-wp/js/wavesurfer.js/wp-content/plugins/wavesurfer-wp/js/wavesurfer-wp.js/wp-content/plugins/wavesurfer-wp/js/download.min.js/wp-content/plugins/wavesurfer-wp/css/wavesurfer-wp_default.css/wp-content/plugins/wavesurfer-wp/css/wavesurfer-wp_flat-icons.css/wp-content/plugins/wavesurfer-wp/css/wavesurfer-wp_font.css
Script Paths
/wp-content/plugins/wavesurfer-wp/js/wavesurfer.js/wp-content/plugins/wavesurfer-wp/js/wavesurfer-wp.js/wp-content/plugins/wavesurfer-wp/js/download.min.js

HTML / DOM Fingerprints

CSS Classes
wavesurfer-wp
HTML Comments
<!-- WaveSurfer-WP --><!-- WaveSurfer-WP Premium -->
Data Attributes
data-wavesurfer-urldata-wavesurfer-waveformdata-wavesurfer-base-url
JS Globals
wavesurfer_localizemy_ajax_obj
Shortcode Output
[wavesurfer_wp_player]
FAQ

Frequently Asked Questions about WaveSurfer-WP