CVE-2025-14143Ayo Shortcodes是WordPress平台上一款常用的短代码生成插件,允许用户通过简短的标签快速插入复杂的页面元素。然而,该插件在0.2及以下所有版本中存在严重的存储型跨站脚本漏洞。漏洞根源在于插件对用户输入的'color'参数处理不当,未能进行充分的输入清理和输出转义。攻击者只需拥有WordPress网站的Contributor(贡献者)级别权限,即可利用ayo_action短代码中的color参数注入任意JavaScript脚本。这些恶意脚本会被永久存储在数据库中,当其他用户访问包含该短代码的页面时,恶意脚本将自动执行,可能导致会话劫持、敏感信息窃取、管理员权限滥用等严重后果。由于存储型XSS的攻击代码被嵌入到正常页面中,传统防火墙难以检测,且影响范围持续时间长。
漏洞存在于Ayo Shortcodes插件的ayo-shortcodes-functions.php文件第55行和第66行附近。当用户使用[ayo_action color="xxx"]短代码时,插件直接将该color参数值输出到HTML页面,而未经过htmlspecialchars()或类似函数的转义处理。攻击者可以通过构造恶意的color参数值,如:color="red onload=alert(document.cookie)",将JavaScript代码注入到页面中。由于插件在保存文章内容时不会过滤短代码参数,该恶意代码会被永久存储在wp_posts表中。当管理员或其他用户访问包含该短代码的文章页面时,浏览器会解析HTML并将onload事件中的JavaScript代码作为页面加载的一部分执行。攻击者可以利用此漏洞窃取管理员cookie、修改页面内容、植入后门或进行钓鱼攻击。修复方案是在输出color参数时使用esc_attr()函数进行转义。