CVE-2025-13967Woodpecker for WordPress插件是一款用于WordPress网站的联系表单集成插件,允许用户通过短代码在页面中嵌入表单功能。该插件在3.0.4及之前的所有版本中存在一处严重的存储型跨站脚本(Stored XSS)漏洞。漏洞源于[woodpecker-connector]短代码的'form_name'参数在处理用户输入时未进行充分的输入消毒和输出转义处理。攻击者利用此漏洞可以注入任意JavaScript代码到网页中。由于该插件使用WordPress的短代码机制,恶意脚本会被永久存储在数据库中,任何访问包含该短代码页面的用户都会触发恶意代码执行。此漏洞需要攻击者具备至少Contributor(贡献者)级别的WordPress账户权限,门槛相对较低,在多用户WordPress博客或网站中极易被利用。攻击成功后,攻击者可以窃取用户会话Cookie、劫持用户账户、进行钓鱼攻击或植入更多恶意内容,严重威胁网站和用户数据安全。
漏洞根源在于woodpecker插件的wfw-public-shortcode.php文件中对form_name参数的处理逻辑。该文件在第39行左右直接输出用户可控的form_name参数,未经过任何HTML实体转义或输入验证。当用户访问包含恶意短代码的页面时,浏览器会执行注入的脚本代码。漏洞利用方式:攻击者创建一个包含恶意JavaScript的form_name参数值的[woodpecker-connector]短代码,并将其插入到任意文章或页面中。WordPress在渲染页面时会调用class-wfw-public.php中的相关方法,该方法在第109行附近处理短代码属性时将未转义的用户输入直接输出到HTML页面。由于存储型XSS的特性,恶意代码会永久存在于数据库中,只要页面存在就会执行。攻击者可利用此漏洞窃取管理员Cookie、键盘记录、页面篡改或进一步横向移动。修复方案需要在该参数输出前调用esc_html()或类似函数进行HTML实体转义。