CVE-2026-1822WordPress的WP NG Weather插件在1.0.9及之前的所有版本中存在存储型跨站脚本(XSS)漏洞。该漏洞源于插件对“ng-weather”短代码中用户提供的属性缺乏足够的输入清理和输出转义。拥有贡献者级别及以上权限的经过身份验证的攻击者可以利用此漏洞在页面中注入任意Web脚本。一旦用户访问被注入的页面,这些脚本就会自动执行,从而导致潜在的安全风险。
该漏洞的核心原理在于WP NG Weather插件处理“ng-weather”短代码时,未对用户输入的属性参数进行严格的过滤和转义。在WordPress插件开发中,短代码常用于动态生成内容。当插件解析`[ng-weather]`标签时,它直接将攻击者控制的属性值输出到HTML标签属性中。由于缺乏安全编码规范(如未使用`esc_attr()`函数),攻击者可以通过构造特殊的Payload(例如闭合引号并添加`onerror`或`onmouseover`事件处理器)来注入恶意JavaScript代码。利用方式方面,攻击者首先需要拥有一个具有贡献者或更高权限的WordPress账户。随后,攻击者在编辑文章或页面时,插入包含恶意代码的短代码。例如,将属性值设置为`x onmouseover=alert(1)`。当管理员或其他用户浏览该页面时,恶意脚本将在其浏览器上下文中执行。由于是存储型XSS,恶意脚本持久化存储在数据库中,每次访问受影响页面都会触发攻击,这可能导致窃取Cookie、会话劫持或进一步的后台操作。