CVE-2022-36033: jsoup may not sanitize Cross-Site Scripting (XSS) attempts if SafeList.preserveRelativeLinks is enabled
jsoup is a Java HTML parser, built for HTML editing, cleaning, scraping, and cross-site scripting (XSS) safety. jsoup may incorrectly sanitize HTML including javascript: URL expressions, which could allow XSS attacks when a reader subsequently clicks that link. If the non-default SafeList.preserveRelativeLinks option is enabled, HTML including javascript: URLs that have been crafted with control characters will not be sanitized. If the site that this HTML is published on does not set a Content Security Policy, an XSS attack is then possible. This issue is patched in jsoup 1.15.3. Users should upgrade to this version. Additionally, as the unsanitized input may have been persisted, old content should be cleaned again using the updated version. To remediate this issue without immediately upgrading: - disable SafeList.preserveRelativeLinks, which will rewrite input URLs as absolute URLs - ensure an appropriate Content Security Policy is defined. (This should be used regardless of upgrading, as a defence-in-depth best practice.)
Other sources
jsoup is vulnerable to cross-site scripting, caused by improper validation of user-supplied input. A remote attacker could exploit this vulnerability using a specially-crafted URL to execute script in a victim's Web browser within the security context of the hosting Web site, once the URL is clicked. An attacker could use this vulnerability to steal the victim's cookie-based authentication credentials.
— IBM
jsoup may not sanitize Cross-Site Scripting (XSS) attempts if SafeList.preserveRelativeLinks is enabled
— Microsoft
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
jsoupto a version that resolves this vulnerability.Fixed in 1.15.3 - Configuration
Disable SafeList.preserveRelativeLinks so input URLs are rewritten as absolute URLs (prevents preserving crafted javascript: URLs).
jsoup SafeList SafeList.preserveRelativeLinks = false - Compensating control
Ensure an appropriate Content Security Policy (CSP) is defined for the site to mitigate the impact of any unsanitized URLs (defense-in-depth).
- Operational
Re-clean any previously persisted content that may contain unsanitized input using the updated jsoup 1.15.3 to remove potentially malicious javascript: URLs.
Event History
Frequently Asked Questions
What is CVE-2022-36033?
CVE-2022-36033 is a vulnerability in the jsoup Java HTML parser that could allow cross-site scripting (XSS) attacks.
How does CVE-2022-36033 affect affected software?
CVE-2022-36033 affects jsoup versions up to and excluding 1.15.3, as well as Netapp Management Services For Element Software, Netapp Management Services For Netapp HCI, and NetApp OnCommand Workflow Automation.
What is the severity of CVE-2022-36033?
CVE-2022-36033 has a severity rating of medium, with a CVSS score of 6.1.
How can I fix CVE-2022-36033?
To fix CVE-2022-36033, update to jsoup version 1.15.3 or later.
Where can I find more information about CVE-2022-36033?
You can find more information about CVE-2022-36033 on the jsoup GitHub releases page and the jsoup security advisories page.