Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Primary rating from Vendor (Wordfence) · only source for this CVE.
CVSS VectorVendor: Wordfence
Lifecycle Timeline
3DescriptionCVE.org
The pdfl.io plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'pdflio' shortcode in all versions up to, and including, 1.0.5. This is due to insufficient input sanitization and output escaping on the 'text' shortcode attribute. The output_shortcode() function directly concatenates the user-supplied $text variable into HTML output without applying esc_html() or any other escaping function. This makes it possible for authenticated attackers, with Contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
AnalysisAI
Stored cross-site scripting (XSS) in the pdfl.io WordPress plugin allows authenticated contributors and above to inject arbitrary JavaScript into pages via the 'text' attribute of the 'pdflio' shortcode, which is executed in the browsers of all site visitors due to missing output escaping. All versions up to and including 1.0.5 are affected, and the vulnerability requires Contributor-level WordPress access but no user interaction beyond page access. No public exploit code or active exploitation has been confirmed; the attack relies on insufficient input sanitization in the output_shortcode() function.
Technical ContextAI
The pdfl.io plugin (CPE: cpe:2.3:a:dougblackjr:pdfl.io:*:*:*:*:*:*:*:*) implements a WordPress shortcode handler that processes user-supplied attributes. The vulnerability stems from CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically in the output_shortcode() function which directly concatenates the $text variable into HTML output without applying WordPress escaping functions such as esc_html() or esc_attr(). This is a classic stored XSS pattern in WordPress plugins where shortcode attributes are user-controllable but output is rendered to the page without sanitization. The 'pdflio' shortcode, referenced in the plugin's pdflio.php file at lines 81 and 117, fails to escape the 'text' parameter before rendering it in the page DOM.
RemediationAI
Vendors should update the pdfl.io plugin to a version newer than 1.0.5 that implements proper output escaping using WordPress escaping functions (esc_html(), esc_attr(), or wp_kses_post() depending on context) on the $text shortcode attribute before rendering. Site administrators should immediately update the plugin when a patched version becomes available. As an interim workaround, restrict Contributor-level access to trusted users only and conduct a security audit of existing page content for injected scripts if the plugin has been in use on a multi-contributor site. The changeset reference in the plugin repository (https://plugins.trac.wordpress.org/changeset) should be monitored for patch commits addressing line 117 of pdflio.php.
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-20433
GHSA-285h-4g37-rqhw