CVE-2025-11863My Geo Posts Free是一款WordPress插件,用于根据用户地理位置显示动态内容。该插件在1.2及之前所有版本中存在严重的存储型跨站脚本(Stored XSS)漏洞。漏洞源于插件的'mygeo_city'短代码功能中的'default'属性参数未进行充分的输入清理和输出转义处理。攻击者利用此漏洞可以注入任意JavaScript代码,这些恶意代码会被永久存储在受影响的WordPress页面或文章中。当其他用户访问包含恶意代码的页面时,注入的脚本会自动执行,可能导致会话劫持、敏感信息窃取、钓鱼攻击等严重后果。由于攻击需要具有contributor(贡献者)级别或更高权限的账户,此漏洞对具有较高权限用户的账户安全构成威胁,同时也可能被已攻陷低权限账户的攻击者利用。
该漏洞位于My Geo Posts Free插件的inc/shortcodes.php文件第22行附近。插件在处理'mygeo_city'短代码时,直接将用户通过'default'属性传入的参数输出到HTML页面,而没有进行适当的HTML实体转义或输入验证。攻击者可以通过构造包含JavaScript代码的'default'参数来注入恶意脚本,例如:[mygeo_city default='"><script>alert(document.cookie)</script>']。由于WordPress的短代码机制会将内容保存到数据库中,恶意代码会被永久存储。每次有用户访问包含该短代码的页面时,浏览器都会执行这段JavaScript代码。攻击者可以利用此漏洞窃取管理员Cookie、伪造表单进行钓鱼攻击、修改页面内容或重定向用户到恶意网站。漏洞的利用不需要复杂的攻击技术,但对目标网站的安全性构成实质性威胁。