このスクリプトは、ServiceNow UI Macros における CVE-2025-11449 および CVE-2025-11450 のセキュリティ脆弱性を自動的に検出し、修復します。これらの脆弱性は、ユーザー制御の sysparm_ パラメータが適切にサニタイズされていない場合、特別に細工されたリンクを通じてユーザーのブラウザで任意のコード実行を引き起こす可能性があります。
$pwd_verify_email$pwd_verify_personal_data_uiこのスクリプトは、2つの主要なセキュリティ修正を実行します:
<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 をエクスポートしてください
// ナビゲート先: 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 Macros をチェックするには、3行目を変更します:
var macrosToCheck = ['$pwd_verify_email', '$pwd_verify_personal_data_ui', 'your_custom_macro'];
重大: これらの脆弱性により、以下のようなクロスサイトスクリプティング (XSS) 攻撃が可能になります:
問題を発見した場合や改善案がある場合は、以下を行ってください:
MIT License - 自由に使用、変更、配布できます。
自己責任で使用してください! 常に:
このスクリプトは現状のまま保証なしで提供されます。作者は、その使用によって生じたいかなる損害や問題についても責任を負いません。
このスクリプトは、Daniel Aagren Seehartrai Madsen による ServiceNow Helper によって生成されました。
ServiceNow コミュニティが重大なセキュリティ脆弱性に迅速かつ安全に対処できるよう支援するために作成されました。