Info Cards <= 2.0.7 - Authenticated (Contributor+) Stored Cross-Site Scripting via Block Attributes
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Cross-site scripting
- Confidentiality · integrity · availability
- Low · Low · None
- Fix status
- No fix listed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-79.
Summary
The Info Cards – Add Text and Media in Card Layouts plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'btnUrl' parameter within the Info Cards block in all versions up to, and including, 2.0.7. This is due to insufficient input validation on URL schemes, specifically the lack of javascript: protocol filtering. The block's render.php passes all attributes as JSON to the frontend via a data-attributes HTML attribute using esc_attr(wp_json_encode()), which prevents HTML attribute injection but does not validate URL protocols within the JSON data. The client-side view.js then renders the btnUrl value directly as an href attribute on anchor elements without any protocol sanitization. This makes it possible for authenticated attackers, with Contributor-level access and above, to inject javascript: URLs that execute arbitrary web scripts when a user clicks the rendered button link.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
No fixed version listed by the sources yet.
Timeline
- 2026-10-02 Threatist record created from CVE-2026-4120
- 2026-10-03 Alias added: GHSA-m6j6-gfjm-gh8m
References
Other 8
- https://www.wordfence.com/threat-intel/vulnerabilities/id/279984d9-f352-467f-a53d-814466d70326?source=cve
- https://plugins.trac.wordpress.org/browser/info-cards/trunk/build/render.php#L8
- https://plugins.trac.wordpress.org/browser/info-cards/tags/2.0.7/build/render.php#L8
- https://plugins.trac.wordpress.org/browser/info-cards/trunk/build/view.js#L2
- https://plugins.trac.wordpress.org/browser/info-cards/tags/2.0.7/build/view.js#L2
- https://plugins.trac.wordpress.org/browser/info-cards/trunk/build/block.json#L35
- https://plugins.trac.wordpress.org/browser/info-cards/tags/2.0.7/build/block.json#L35
- https://plugins.trac.wordpress.org/browser/info-cards/trunk/build/render.php?rev=3482902
More bPlugins vulnerabilities
- TI-2024-05133 HTML5 Video Player < 2.5.27 - Unauthenticated SQLi CVSS 3.1MEDIUM 6.5
- TI-2024-00982 SQL injection in html5-video-player CVSS 3.1CRITICAL 9.8
- TI-2023-00164 Html5 Audio Player < 2.1.12 - Contributor+ Stored XSS CVSS 3.1MEDIUM 5.4
- TI-2025-11361 Missing authorization in bPlugins Document Embedder – Embed PDFs, Word, Excel, and Other… CVSS 3.1HIGH 8.6
- TI-2025-07373 B Blocks <= 2.0.6 - Missing Authorization to Unauthenticated Privilege Escalation via rgfr_registration Function CVSS 3.1CRITICAL 9.8
- TI-2026-40456 WordPress MailChimp Block plugin <= 1.1.15 - Broken Access Control vulnerability CVSS 3.1HIGH 8.3
Sources
- CVE-2026-4120 · CVE Program
- CVE-2026-4120 · NVD
- FIRST EPSS
- GHSA-m6j6-gfjm-gh8m · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences