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
jhy/jsoupto a version that resolves this vulnerability.Fixed in 1.15.3Patch GHSA-gp7f-rwcx-9369 - Configuration
Disable the non-default SafeList.preserveRelativeLinks option (it rewrites input URLs as absolute URLs) to prevent unsanitized javascript: URLs from being preserved.
jsoup SafeList preserveRelativeLinks = false - Compensating control
Ensure an appropriate Content Security Policy (CSP) is defined on the site that publishes the sanitized HTML, as CSP is used as defence-in-depth to prevent XSS if javascript: links are not sanitized.
- Operational
If unsanitized input may have been persisted, clean the old content again using the updated jsoup version after upgrading to jsoup 1.15.3.
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.