Description
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.
Published: 2026-03-20
Score: 6.4 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Stored Cross‑Site Scripting that can be performed by authenticated Contributor users, allowing arbitrary scripts on the front end.
Action: Apply Patch
AI Analysis

Impact

The Contact List plugin for WordPress can store malicious JavaScript when an authenticated user with Contributor level or higher edits the _cl_map_iframe field. The plugin extracts an iframe tag but does not sanitize its attributes, and later displays the stored iframe unescaped. This flaw permits attackers to embed event handlers such as onload, enabling the execution of arbitrary scripts whenever a visitor loads a contact card, potentially enabling defacement, credential theft, or further XSS attacks.

Affected Systems

WordPress sites that have installed the Contact List – Online Staff Directory & Address Book plugin version 3.0.18 or earlier are affected. The vulnerability exists in all releases up to and including 3.0.18 across the plugin’s author anssilaitila.

Risk and Exploitability

The CVSS base score of 6.4 indicates moderate severity. Exploitation requires Contributor‑level or higher access within the WordPress dashboard, and occurs via the normal custom field editing interface. No EPSS score is available and the issue is not listed in the CISA KEV catalog. Because this is a stored XSS flaw, a compromised or malicious user can persistently inject code that runs for every visitor, affecting the entire front‑end and potentially compromising logged‑in sessions.

Generated by OpenCVE AI on March 21, 2026 at 07:42 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Contact List plugin to a version newer than 3.0.18.
  • Search the database for stored iframe meta values containing unescaped attributes and remove or sanitize them.
  • Temporarily restrict Contributor or higher users from editing custom fields that can store iframe markup until the plugin has been upgraded.
  • Regularly verify contact pages for unexpected JavaScript and monitor site logs for signs of unauthorized script injection.

Generated by OpenCVE AI on March 21, 2026 at 07:42 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 24 Mar 2026 15:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 23 Mar 2026 10:00:00 +0000

Type Values Removed Values Added
First Time appeared Anssilaitila
Anssilaitila contact List – Online Staff Directory & Address Book
Wordpress
Wordpress wordpress
Vendors & Products Anssilaitila
Anssilaitila contact List – Online Staff Directory & Address Book
Wordpress
Wordpress wordpress

Sat, 21 Mar 2026 05:30:00 +0000

Type Values Removed Values Added
Description 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.
Title Contact List <= 3.0.18 - Authenticated (Contributor+) Stored Cross-Site Scripting via '_cl_map_iframe' Parameter
Weaknesses CWE-79
References
Metrics cvssV3_1

{'score': 6.4, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N'}


Subscriptions

Anssilaitila Contact List – Online Staff Directory & Address Book
Wordpress Wordpress
cve-icon MITRE

Status: PUBLISHED

Assigner: Wordfence

Published:

Updated: 2026-04-08T17:13:48.185Z

Reserved: 2026-03-04T15:08:30.107Z

Link: CVE-2026-3516

cve-icon Vulnrichment

Updated: 2026-03-24T14:11:56.033Z

cve-icon NVD

Status : Deferred

Published: 2026-03-21T00:16:28.387

Modified: 2026-04-22T21:32:08.360

Link: CVE-2026-3516

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-03-25T14:33:37Z

Weaknesses