GHSA-2v8p-3f2j-5mp7
Mermaid XY Charts are vulnerable to an infinite loop DoS
Quick fix
GHSA-2v8p-3f2j-5mp7 — mermaid: upgrade to the fixed version with the command below.
npm install mermaid@10.9.8 Details
### Impact
Mermaid XY Charts are vulnerable to an infinite loop DoS attack in the `setXAxisRangeData()`, when configuring an X-Axis with invalid parameters.
As each loop appends an element to an array, this would generally only cause an `RangeError: Invalid array length` to appear after a few seconds, but may cause the page/JavaScript process to crash due to memory exhaustion, depending on the environment.
#### Proof-of-concept
```txt xychart x-axis 1 --> 1 line [1, 2] ```
### Patches
This has been patched in https://github.com/mermaid-js/mermaid/commit/630aa7e5dd417e1f56bff2a1ce8df2c5ad08d289 and released in [Mermaid v11.16.1](https://github.com/mermaid-js/mermaid/releases/tag/mermaid%4011.16.1).
A backport has been made for the v10 branch in ef60adc837d9d5107af21285f01e83dea309bd0a and was released in [Mermaid v10.9.8](https://github.com/mermaid-js/mermaid/releases/tag/v10.9.8)
### Workarounds
There are no known workarounds. Please update to the latest version or apply the patch.
### References
- https://github.com/mermaid-js/mermaid/commit/630aa7e5dd417e1f56bff2a1ce8df2c5ad08d289 - https://github.com/mermaid-js/mermaid/releases/tag/mermaid%4011.16.1 - https://github.com/mermaid-js/mermaid/commit/ef60adc837d9d5107af21285f01e83dea309bd0a - https://github.com/mermaid-js/mermaid/releases/tag/v10.9.8
Are you affected?
Enter the version of the package you're using.
Affected packages
References
- https://github.com/mermaid-js/mermaid/security/advisories/GHSA-2v8p-3f2j-5mp7 [WEB]
- https://github.com/mermaid-js/mermaid/pull/8022 [WEB]
- https://github.com/mermaid-js/mermaid/commit/630aa7e5dd417e1f56bff2a1ce8df2c5ad08d289 [WEB]
- https://github.com/mermaid-js/mermaid/commit/ef60adc837d9d5107af21285f01e83dea309bd0a [WEB]
- https://github.com/mermaid-js/mermaid [PACKAGE]
- https://github.com/mermaid-js/mermaid/releases/tag/mermaid@11.16.1 [WEB]
- https://github.com/mermaid-js/mermaid/releases/tag/v10.9.8 [WEB]