CVE-2025-13960GPXpress是WordPress的一个GPX文件导入和显示插件。该插件在1.3及以下所有版本中存在存储型跨站脚本(XSS)漏洞。漏洞根源在于插件的'gpxpress'短代码功能对用户提供的属性值缺乏充分的输入清理和输出转义处理。攻击者只需要拥有WordPress的contributor级别或更高权限(能够创建和编辑文章),即可通过在页面中插入恶意构造的gpxpress短代码来注入任意JavaScript脚本。这些恶意脚本会被永久存储在数据库中,当其他用户访问包含该短代码的页面时,注入的脚本会自动执行,可能导致会话劫持、敏感信息窃取、管理员权限滥用等严重安全风险。由于攻击利用的是已认证用户的权限,且无需目标用户交互,该漏洞具有较高的实际利用价值。
漏洞位于GPXpress插件的Gpxpress.php文件第152行附近。该文件处理gpxpress短代码时,直接将用户提供的属性值输出到HTML页面而未进行适当的转义处理。具体来说,当用户访问包含恶意短代码的页面时,插件会从数据库读取短代码属性并直接拼接到HTML响应中。攻击者可以通过构造类似[gpxpress src='x' onerror='alert(1)']的短代码来注入JavaScript代码。由于插件使用echo或直接输出方式渲染页面内容,而没有使用htmlspecialchars()或其他转义函数对用户输入进行过滤,导致恶意脚本被浏览器解析执行。此漏洞属于存储型XSS,恶意代码会永久保存在数据库中,影响所有访问该页面的用户。修复方案应在输出前对所有用户可控的属性进行htmlspecialchars()转义处理。