CVE-2025-14626CVE-2025-14626是WordPress平台上一款流行的QR码生成插件的安全漏洞。该插件用于在WooCommerce订单邮件、PDF发票和装箱单中生成QR码,为电商网站提供便捷的订单追踪和验证功能。漏洞源于插件在处理shortcode属性时存在严重的输入验证缺陷。具体而言,插件对用户提供的属性参数缺乏充分的输入清理和输出转义,导致恶意构造的JavaScript代码可以被存储在数据库中。当其他用户访问包含恶意代码的页面时,浏览器会执行这些脚本,从而实现跨站脚本攻击。攻击者可以利用此漏洞窃取用户的会话令牌、劫持用户账户、进行钓鱼攻击或传播恶意软件。由于该漏洞影响所有版本至1.9.42,且需要至少贡献者级别的账户权限即可利用,因此对使用该插件的WordPress网站构成了中等程度的安全风险。建议网站管理员立即更新到最新版本,并审查现有内容是否存在恶意代码。
该漏洞的根本原因在于插件的shortcode处理器对用户输入的属性参数缺少适当的输入验证和输出编码。在WordPress中,shortcode是一种允许用户通过简短的标签在文章或页面中嵌入动态内容的机制。QR Code插件通过shortcode提供了便捷的QR码插入功能,但开发者在实现时未能遵循WordPress安全最佳实践。具体来说,当用户通过shortcode属性传递参数时,插件直接将用户输入插入到HTML输出中,而没有进行必要的HTML实体编码或输入验证。攻击者只需构造一个包含恶意JavaScript代码的shortcode,例如[qrcode_attack code='" onerror="alert(document.cookie)" data-x="'],该代码就会被永久存储在数据库中。每次页面加载时,恶意脚本都会执行,影响所有访问该页面的用户。漏洞位置位于lib/qrct/QrctWp.php文件的第1661行附近。该漏洞属于存储型XSS,相比反射型XSS具有更大的危害性,因为它不需要诱骗用户点击特定链接,恶意代码会持续存在于网站上。