
Автоматическое обнаружение и устранение уязвимостей UI Macro в ServiceNow (CVE-2025-11449, CVE-2025-11450) путем кодирования параметров sysparm_ для предотвращения XSS-атак.
Этот скрипт автоматически обнаруживает и устраняет уязвимости безопасности CVE-2025-11449 и CVE-2025-11450 в UI-макросах ServiceNow. Эти уязвимости могут позволить выполнение произвольного кода в браузерах пользователей через специально созданные ссылки, если контролируемые пользователем параметры 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-макросы перед запуском этого скрипта
// Перейдите в: System UI > UI Macros
// Экспортируйте: $pwd_verify_email и $pwd_verify_personal_data_ui
Запустите скрипт обнаружения
CVE_2025_11449_fix.jsПросмотрите вывод
Примените исправление
Тщательно протестируйте
AFFECTED Macro: $pwd_verify_personal_data_ui (sys_id: abc123...) [ACTIVE - HIGH PRIORITY]
Found 8 vulnerable sysparm_ pattern(s) outside <g:evaluate>:
- ${HTML:sysparm_verification_id}
- ${HTML:sysparm_verification_id}
- ${HTML:sysparm_verification_id}
- ${HTML:sysparm_verification_id}
- ${HTML:sysparm_verification_id}
... and 3 more
Found 1 vulnerable sysparm_ pattern(s) inside <g:evaluate>:
- "${sysparm_verification_id}"
Suggested Cured XML:
[Fixed XML output here]
---
Чтобы проверить дополнительные UI-макросы, измените строку 3:
var macrosToCheck = ['$pwd_verify_email', '$pwd_verify_personal_data_ui', 'your_custom_macro'];
КРИТИЧЕСКИ ВАЖНО: Эти уязвимости позволяют проводить атаки с межсайтовым скриптингом (XSS), которые могут:
Нашли проблему или есть предложение по улучшению? Пожалуйста:
Лицензия MIT — можно свободно использовать, изменять и распространять.
Используйте на свой страх и риск! Всегда:
Этот скрипт предоставляется как есть, без каких-либо гарантий. Автор не несёт ответственности за любой ущерб или проблемы, вызванные его использованием.
Скрипт создан с помощью ServiceNow Helper Дэниелом Огреном Сихартраи Мадсеном
Создан, чтобы помочь сообществу ServiceNow быстро и безопасно устранить критические уязвимости безопасности.