CVE-2026-3516: CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') in anssilaitila Contact List – Online Staff Directory & Address Book
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.
AI Analysis
Technical Summary
CVE-2026-3516 is a stored cross-site scripting vulnerability affecting all versions up to 3.0.18 of the Contact List – Online Staff Directory & Address Book WordPress plugin by anssilaitila. The root cause is insufficient input sanitization and output escaping related to the '_cl_map_iframe' parameter, which is intended to embed Google Maps iframes. The plugin's saveCustomFields() function uses a regular expression to extract iframe tags from user input but fails to validate or sanitize the iframe's attributes, allowing malicious event handler attributes such as 'onload' to be included. This crafted iframe HTML is stored in the WordPress post meta database via update_post_meta() without filtering. Later, the stored iframe is output directly on the front-end by class-cl-public-card.php without applying escaping functions like wp_kses or esc_html, enabling arbitrary JavaScript execution in the context of the affected site. The vulnerability requires an attacker to have at least Contributor-level authenticated access, which is a relatively low privilege level in WordPress, making it feasible for insiders or compromised accounts to exploit. The attack does not require victim interaction beyond visiting the affected page, and the scope is site-wide for any user accessing the injected content. The CVSS 3.1 base score of 6.4 reflects network attack vector, low attack complexity, privileges required, no user interaction, and partial confidentiality and integrity impacts. No patches or official fixes are currently linked, and no public exploits are known, but the vulnerability poses a significant risk if weaponized.
Potential Impact
This vulnerability allows authenticated users with Contributor-level access or higher to inject persistent malicious scripts into pages rendered by the Contact List plugin. The impact includes potential theft of session cookies, user credentials, or other sensitive information from site visitors, enabling account takeover or privilege escalation. It can also facilitate defacement, phishing, or distribution of malware via the affected website. Since the vulnerability affects a plugin used for staff directories and address books, organizations relying on it may expose internal contact information or enable lateral movement within their networks. The lack of output sanitization means any visitor to the compromised page is at risk, increasing the attack surface. While availability is not directly impacted, the integrity and confidentiality of user data and site content are at risk. The requirement for authenticated access limits exploitation to insiders or compromised accounts but does not eliminate risk, especially in environments with many contributors or weak account controls. The vulnerability could be leveraged as part of a broader attack chain targeting organizational infrastructure or users.
Mitigation Recommendations
Organizations should immediately restrict Contributor-level user capabilities to trusted individuals and audit existing accounts for suspicious activity. Until an official patch is released, administrators can mitigate risk by disabling or uninstalling the Contact List plugin if feasible. Alternatively, apply manual code fixes by sanitizing and validating the '_cl_map_iframe' input to allow only safe iframe attributes and removing event handler attributes like 'onload'. Implement output escaping using WordPress functions such as wp_kses() with a strict whitelist or esc_html() before rendering iframe content on the front-end. Employ Web Application Firewalls (WAFs) with custom rules to detect and block suspicious iframe attribute injections. Regularly monitor logs for unusual post meta updates or contributor activity. Educate users about phishing risks arising from XSS attacks. Finally, maintain up-to-date backups to enable recovery if exploitation occurs.
Affected Countries
United States, United Kingdom, Germany, Canada, Australia, France, Netherlands, India, Brazil, Japan
CVE-2026-3516: CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') in anssilaitila Contact List – Online Staff Directory & Address Book
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.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
CVE-2026-3516 is a stored cross-site scripting vulnerability affecting all versions up to 3.0.18 of the Contact List – Online Staff Directory & Address Book WordPress plugin by anssilaitila. The root cause is insufficient input sanitization and output escaping related to the '_cl_map_iframe' parameter, which is intended to embed Google Maps iframes. The plugin's saveCustomFields() function uses a regular expression to extract iframe tags from user input but fails to validate or sanitize the iframe's attributes, allowing malicious event handler attributes such as 'onload' to be included. This crafted iframe HTML is stored in the WordPress post meta database via update_post_meta() without filtering. Later, the stored iframe is output directly on the front-end by class-cl-public-card.php without applying escaping functions like wp_kses or esc_html, enabling arbitrary JavaScript execution in the context of the affected site. The vulnerability requires an attacker to have at least Contributor-level authenticated access, which is a relatively low privilege level in WordPress, making it feasible for insiders or compromised accounts to exploit. The attack does not require victim interaction beyond visiting the affected page, and the scope is site-wide for any user accessing the injected content. The CVSS 3.1 base score of 6.4 reflects network attack vector, low attack complexity, privileges required, no user interaction, and partial confidentiality and integrity impacts. No patches or official fixes are currently linked, and no public exploits are known, but the vulnerability poses a significant risk if weaponized.
Potential Impact
This vulnerability allows authenticated users with Contributor-level access or higher to inject persistent malicious scripts into pages rendered by the Contact List plugin. The impact includes potential theft of session cookies, user credentials, or other sensitive information from site visitors, enabling account takeover or privilege escalation. It can also facilitate defacement, phishing, or distribution of malware via the affected website. Since the vulnerability affects a plugin used for staff directories and address books, organizations relying on it may expose internal contact information or enable lateral movement within their networks. The lack of output sanitization means any visitor to the compromised page is at risk, increasing the attack surface. While availability is not directly impacted, the integrity and confidentiality of user data and site content are at risk. The requirement for authenticated access limits exploitation to insiders or compromised accounts but does not eliminate risk, especially in environments with many contributors or weak account controls. The vulnerability could be leveraged as part of a broader attack chain targeting organizational infrastructure or users.
Mitigation Recommendations
Organizations should immediately restrict Contributor-level user capabilities to trusted individuals and audit existing accounts for suspicious activity. Until an official patch is released, administrators can mitigate risk by disabling or uninstalling the Contact List plugin if feasible. Alternatively, apply manual code fixes by sanitizing and validating the '_cl_map_iframe' input to allow only safe iframe attributes and removing event handler attributes like 'onload'. Implement output escaping using WordPress functions such as wp_kses() with a strict whitelist or esc_html() before rendering iframe content on the front-end. Employ Web Application Firewalls (WAFs) with custom rules to detect and block suspicious iframe attribute injections. Regularly monitor logs for unusual post meta updates or contributor activity. Educate users about phishing risks arising from XSS attacks. Finally, maintain up-to-date backups to enable recovery if exploitation occurs.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- Wordfence
- Date Reserved
- 2026-03-04T15:08:30.107Z
- Cvss Version
- 3.1
- State
- PUBLISHED
Threat ID: 69bdda56b462d409683a8c12
Added to database: 3/20/2026, 11:37:58 PM
Last enriched: 3/20/2026, 11:40:19 PM
Last updated: 3/21/2026, 3:46:09 AM
Views: 7
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.