> For the complete documentation index, see [llms.txt](https://docs.sec1.io/user-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sec1.io/user-docs/4-sast/3-javascript/usage-of-vulnerable-dompurify-package.md).

# Usage of vulnerable DOMPurify package

## Overview

* **Rule ID**: `javascript_third_parties_dom_purify`
* **Applicable Languages**: Javascript
* **Weakness ID**: CWE-79

## Description

For DOMPurify versions prior to 2.0.17, there are XSS vulnerabilities when using the sanitize function without proper configuration.

## Remediation Guidelines

* **Do** upgrade DOMPurify to version 2.0.17 or greater, and specify a secure configuration option.

  ```javascript
  // either
  DOMPurify.sanitize(htmlToSanitize, { RETURN_DOM_IMPORT:true })
  // or
  DOMPurify.sanitize(htmlToSanitize, { RETURN_DOM_FRAGMENT: true })
  ```

## References

* [**Vulnerability explained**](https://research.securitum.com/mutation-xss-via-mathml-mutation-dompurify-2-0-17-bypass)
* [**CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')**](https://cwe.mitre.org/data/definitions/79.html)
* [**OWASP Top 10: A03:2021 - Injection**](https://owasp.org/Top10/A03_2021-Injection/)

## Configuration

To omit this rule during a scan, and to provide you with continuous 24/7 code-level scanning, you can employ our [**SAST TOOL**](https://scopy.sec1.io/login)
