
该脚本可自动检测并修复 ServiceNow UI Macros 中的 CVE-2025-11449 和 CVE-2025-11450 安全漏洞。如果用户控制的 sysparm_ 参数未得到正确清理,这些漏洞可能通过特制链接在用户浏览器中执行任意代码。
$pwd_verify_email$pwd_verify_personal_data_ui该脚本执行两项关键安全修复:
<g:evaluate> 块外部:添加正确的编码将易受攻击的模式替换为正确编码的版本:
${sysparm_<XYZ>} → ${JS,HTML:sysparm_<XYZ>}${HTML:sysparm_<XYZ>} → ${JS,HTML:sysparm_<XYZ>}${JS:sysparm_<XYZ>} → ${JS,HTML:sysparm_<XYZ>}<g:evaluate> 块内部:使用 Jelly 变量引用将字符串插值替换为安全的 Jelly 对象引用:
"${sysparm_<XYZ>}" → jelly.sysparm_<XYZ>(移除引号!)${HTML:sysparm_<XYZ>} → jelly.sysparm_<XYZ>${JS,HTML:sysparm_<XYZ>} → jelly.sysparm_<XYZ>(在 <g:evaluate> 内部仍然不安全)先备份!
// 在运行此脚本之前导出当前的 UI Macros
// 导航至:系统 UI > UI Macros
// 导出:$pwd_verify_email 和 $pwd_verify_personal_data_ui
运行检测脚本
CVE_2025_11449_fix.js 中的脚本查看输出
应用修复
全面测试
受影响的 Macro: $pwd_verify_personal_data_ui (sys_id: abc123...) [活动 - 高优先级]
在 <g:evaluate> 外部发现 8 个易受攻击的 sysparm_ 模式:
- ${HTML:sysparm_verification_id}
- ${HTML:sysparm_verification_id}
- ${HTML:sysparm_verification_id}
- ${HTML:sysparm_verification_id}
- ${HTML:sysparm_verification_id}
... 以及另外 3 个
在 <g:evaluate> 内部发现 1 个易受攻击的 sysparm_ 模式:
- "${sysparm_verification_id}"
建议修复的 XML:
[此处输出修复后的 XML]
---
要检查其他 UI Macros,请修改第 3 行:
var macrosToCheck = ['$pwd_verify_email', '$pwd_verify_personal_data_ui', 'your_custom_macro'];
严重:这些漏洞允许跨站脚本(XSS)攻击,可能导致:
发现问题或有改进建议?请:
MIT 许可证 - 可自由使用、修改和分发。
自行承担使用风险! 请务必:
此脚本按原样提供,不附带任何担保。作者对因使用本脚本造成的任何损害或问题概不负责。
该脚本由 ServiceNow Helper 生成,作者为 Daniel Aagren Seehartrai Madsen
旨在帮助 ServiceNow 社区快速、安全地解决关键安全漏洞。