Contact List <= 3.0.18 - Authenticated (Contributor+) Stored Cross-Site Scripting via '_cl_map_iframe' Parameter
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 Contact List plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the '_cl_map_iframe' parameter in all versions up to, and including, 3.0.18. This is due to insufficient input sanitization and output escaping when handling the Google Maps iframe custom field. The saveCustomFields() function in class-contact-list-custom-fields.php uses a regex to extract <iframe> tags from user input but does not validate or sanitize the iframe's attributes, allowing event handlers like 'onload' to be included. The extracted iframe HTML is stored via update_post_meta() and later rendered on the front-end in class-cl-public-card.php without any escaping or wp_kses filtering. 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.
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
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Anssi Laitila | Contact List – Online Staff Directory & Address Book | up to 3.0.18 | — | No fix listed | CNA |
- Contact List – Online Staff Directory & Address Book VendorAnssi Laitila Affected up to 3.0.18 Fixed in — No fix listed CNA
Remediation
No fixed version listed by the sources yet.
Timeline
- 2026-10-02 Threatist record created from CVE-2026-3516
- 2026-10-03 Alias added: GHSA-9mgv-v56m-vc43
References
Other 8
- https://www.wordfence.com/threat-intel/vulnerabilities/id/a8059995-55cb-49ee-add1-f5364d0772eb?source=cve
- https://plugins.trac.wordpress.org/browser/contact-list/trunk/public/class-cl-public-card.php#L466
- https://plugins.trac.wordpress.org/browser/contact-list/tags/3.0.17/public/class-cl-public-card.php#L466
- https://plugins.trac.wordpress.org/browser/contact-list/trunk/includes/class-contact-list-custom-fields.php#L697
- https://plugins.trac.wordpress.org/browser/contact-list/tags/3.0.17/includes/class-contact-list-custom-fields.php#L697
- https://plugins.trac.wordpress.org/browser/contact-list/trunk/includes/class-contact-list-custom-fields.php#L675
- https://plugins.trac.wordpress.org/browser/contact-list/tags/3.0.17/includes/class-contact-list-custom-fields.php#L675
- https://plugins.trac.wordpress.org/changeset/3486445
More Anssi Laitila vulnerabilities
- TI-2024-12545 Cross-site scripting in Anssi Laitila Shared Files – Frontend File Upload Form & Secure… CVSS 3.1HIGH 7.2
- TI-2025-03919 Shared Files <= 1.7.48 - Unauthenticated Stored Cross-Site Scripting via sanitize_file Function CVSS 3.1HIGH 7.2
- TI-2024-22773 WordPress Shared Files plugin <= 1.7.19 - Broken Access Control vulnerability CVSS 3.1MEDIUM 5.3
- TI-2022-04562 Freemius SDK <= 2.4.2 - Missing Authorization Checks CVSS 3.1MEDIUM 6.3
- TI-2024-21559 WordPress Shared Files plugin <= 1.7.16 - Broken Access Control vulnerability CVSS 3.1MEDIUM 5.3
Sources
- CVE-2026-3516 · CVE Program
- CVE-2026-3516 · NVD
- FIRST EPSS
- GHSA-9mgv-v56m-vc43 · 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