
ServiceNow UI Macro 취약점(CVE-2025-11449, CVE-2025-11450)을 sysparm_ 매개변수를 인코딩하여 XSS 공격을 방지함으로써 자동 탐지 및 수정합니다.
이 스크립트는 ServiceNow UI 매크로에서 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 매크로를 내보내세요
// 이동 경로: 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 라이선스 - 자유롭게 사용, 수정 및 배포할 수 있습니다.
사용에 따른 책임은 본인에게 있습니다! 항상:
이 스크립트는 보증 없이 있는 그대로 제공됩니다. 작성자는 사용으로 인해 발생하는 손상이나 문제에 대해 책임을 지지 않습니다.
이 스크립트는 Daniel Aagren Seehartrai Madsen의 ServiceNow Helper에 의해 생성되었습니다.
ServiceNow 커뮤니티가 중요한 보안 취약점을 신속하고 안전하게 해결할 수 있도록 돕기 위해 만들어졌습니다.