CVE-2020-13822: Signature Malleability in elliptic
Summary
CVE-2020-13822: Signature Malleabillity in elliptic. Affects elliptic versions < 6.5.3. Fixed in 6.5.3. How to fix ↓
Also tracked for
- node-elliptic · Debian:11
The same CVE-2020-13822 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.
Check if this vulnerability affects your application
Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.
No signup required · Results in about 60 seconds
Background
The elliptic package is a popular library for Node.js that provides support for elliptic curve cryptography. It offers various functionalities for generating and manipulating elliptic curve keys, performing cryptographic operations, and verifying digital signatures. However, versions prior to 6.5.3 of the elliptic package are vulnerable to a signature malleability issue in ECDSA (Elliptic Curve Digital Signature Algorithm). This vulnerability allows for variations in encoding, leading to the presence of '\0' bytes or integer overflows in the signatures. If an application relies on a single canonical signature, this vulnerability could have a security-relevant impact.
Vulnerability Detail
The vulnerability in the elliptic package arises due to the malleability of ECDSA signatures. An attacker can manipulate the signature encoding by introducing variations, such as adding '\0' bytes or causing integer overflows. This can result in different representations of the same signature, which could be exploited by an attacker to bypass signature verification mechanisms. The impact of this vulnerability depends on the specific application and its reliance on a single canonical signature. If an application assumes that a signature is unique and uses it as a basis for security decisions, the malleability of the signature can lead to security vulnerabilities.
How To Fix
Latest published version: 6.6.1 as of 22 Oct 2026
npm install elliptic@6.6.1
Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.
If you need the minimum change
6.5.3
This is the first release that contains the fix.
npm install elliptic@6.5.3
Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →
Workaround
There is no specific workaround mentioned for this vulnerability. However, developers can consider implementing additional checks and validation mechanisms to ensure the integrity of the signatures, even in the presence of malleability. This may involve verifying the signature using multiple representations or employing additional cryptographic techniques to mitigate the impact of malleable signatures.
Conclusion
In conclusion, the elliptic package prior to version 6.5.3 for Node.js is vulnerable to signature malleability in ECDSA. This vulnerability allows for variations in encoding, leading to the presence of '\0' bytes or integer overflows in the signatures. To mitigate this vulnerability, it is crucial to update the elliptic package to version 6.5.3 or later. Additionally, developers can implement additional checks and validation mechanisms to ensure the integrity of signatures. For further support on vulnerability remediation, you can reach out to DevNack.com.
See every vulnerability recorded for elliptic →
FAQ
The impact of this vulnerability depends on the specific application and its reliance on a single canonical signature. If an application assumes that a signature is unique and uses it as a basis for security decisions, the malleability of the signature can lead to security vulnerabilities.
To fix this vulnerability, it is recommended to update the elliptic package to version 6.5.3 or later. This version includes the necessary fixes to address the signature malleability issue. Developers can update the package by running the following command in their Node.js project directory: npm install elliptic@6.5.3
There is no specific workaround mentioned for this vulnerability. However, developers can consider implementing additional checks and validation mechanisms to ensure the integrity of the signatures, even in the presence of malleability. This may involve verifying the signature using multiple representations or employing additional cryptographic techniques to mitigate the impact of malleable signatures.
You can check if your application is affected by this vulnerability by using the Vulert Playground. Vulert is a platform that monitors and alerts in real-time for open-source vulnerabilities in software. You can access the Vulert Playground at Vulert Scanner without any signup. It uses the package-lock.json file to analyze your application and determine if it is affected by this vulnerability.
The CVSS score of this vulnerability is 7.7, indicating a high severity level.
References
Related vulnerabilities
Recent vulnerabilities recorded for elliptic.