CVE-2026-3516WordPress Contact List插件在3.0.18及以下版本中存在存储型跨站脚本(XSS)漏洞。该漏洞源于处理Google Maps iframe自定义字段时缺乏足够的输入清理和输出转义。具有Contributor及以上权限的认证攻击者可利用`_cl_map_iframe`参数注入恶意Web脚本,该脚本将被存储并在前端页面渲染时触发,从而执行任意代码,影响访问该页面的用户。
漏洞核心在于插件对Google Maps iframe自定义字段的处理机制。在`class-contact-list-custom-fields.php`的`saveCustomFields()`函数中,开发者使用正则表达式提取`<iframe>`标签,旨在保留iframe结构但未对标签内部的属性(如`onload`、`onerror`等事件处理器)进行严格的白名单验证或清理。攻击者利用这一点,可以在iframe标签中添加恶意的JavaScript事件处理器。数据通过`update_post_meta()`存入数据库后,前端页面`class-cl-public-card.php`在渲染时直接调用该数据,未使用`wp_kses()`或`htmlspecialchars()`进行转义,导致存储在数据库中的恶意脚本在用户浏览器中执行。此漏洞要求攻击者至少拥有Contributor级别的账户权限。