# CVE-2020-28479: jointjs denial of service via unsetByPath

Source: https://junglewise.ai/threats/cve-2020-28479-jointjs-denial-of-service-via-unsetbypath  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2021-04-13. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2020-28479 · Severity: low · CVSS 3.1 · Published 2021-04-13

jointjs is a JavaScript library used for creating interactive diagrams and graph visualizations. A flaw in the unsetByPath function allows an attacker to trigger a denial of service by causing the application to become unresponsive or crash, disrupting any service that depends on this library for diagram rendering or manipulation.

Technologies: [jointjs (npm)](https://junglewise.ai/threats/technologies/jointjs). Vendors: [npm](https://junglewise.ai/threats/vendors/npm).

## Quick answers

**Is CVE-2020-28479 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2020-28479 being exploited in the wild.

**How severe is CVE-2020-28479?** Low severity, with a CVSS score of 3.1, published 13 April 2021.

**Which products and versions are affected?** jointjs (npm) SEMVER:introduced=0,fixed=3.3.0.

**Is there a fix for CVE-2020-28479?** Yes. jointjs (npm): upgrade to 3.3.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2020-28479 attacked?** It is attacked over the network.

**Am I affected by CVE-2020-28479?** Check whether you run jointjs (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- jointjs (npm): upgrade to 3.3.0 or later

  ```sh
  npm install jointjs@3.3.0
  ```


## Technical details

The unsetByPath function in jointjs before version 3.3.0 is vulnerable to a denial of service attack due to improper input validation or resource handling (CWE-400). The vulnerability allows an attacker with network access to send a crafted request to unsetByPath that triggers excessive resource consumption or infinite loops. No authentication is required and the attack can be performed remotely over the network. The flaw has been patched in version 3.3.0 by implementing prototype modification prevention in the util.unsetByPath function.

## Affected products

- clientIO jointjs before 3.3.0

## Identifiers

- CVE-2020-28479
- GHSA-cq8r-fc3q-6hg2

## Timeline

- 2021-01-19: disclosed
- 2021-04-13: patched: Fixed in version 3.3.0

## References

- [https://github.com/clientIO/joint/commit/ec7ab01b512a3c06a9944a25d50f255bf07c3499](https://github.com/clientIO/joint/commit/ec7ab01b512a3c06a9944a25d50f255bf07c3499)

## Related threats

- [JointJS prototype pollution in setByPath](https://junglewise.ai/threats/cve-2021-23444-jointjs-prototype-pollution-in-setbypath)
- [JointJS prototype pollution in util.setByPath](https://junglewise.ai/threats/cve-2020-28480-jointjs-prototype-pollution-in-util-setbypath)
