CVE-2026-0694SearchWiz是WordPress的一个搜索插件,用于增强站点的搜索功能。该插件在1.0.0及之前的所有版本中存在一个存储型跨站脚本(XSS)漏洞。漏洞的根本原因在于插件在搜索结果中输出文章标题时,使用了esc_attr()函数进行过滤,而不是更安全的esc_html()函数。esc_attr()函数主要用于转义HTML属性值,对于普通的文本内容输出不够安全,可能允许攻击者注入恶意JavaScript脚本。由于这是存储型XSS漏洞,恶意代码会被永久保存在数据库中(文章标题字段),任何访问搜索结果页面的用户都会触发该脚本执行。攻击者利用此漏洞可以窃取用户会话cookie、劫持用户账户、执行恶意操作或重定向用户到钓鱼网站。
漏洞位于SearchWiz插件的public/class-sw-ajax.php文件第616行附近。当用户在WordPress站点执行搜索时,插件会从数据库中检索匹配的文章,并将文章标题显示在搜索结果页面中。问题出在输出文章标题时,代码使用了esc_attr()函数进行转义。esc_attr()函数是WordPress提供的用于转义HTML属性的函数,它会将特殊字符转换为HTML实体(如将<转换为<),但这种转义方式在某些浏览器上下文中可以被绕过。相比之下,esc_html()函数会进行更彻底的HTML编码,更适合用于输出纯文本内容。攻击者只需在文章标题中嵌入JavaScript代码,如:<img src=x onerror=alert(document.cookie)>,当其他用户搜索并查看结果时,该脚本就会在用户浏览器中执行。由于插件直接输出标题而没有进行充分的HTML编码,恶意脚本会被浏览器解析执行。