CVE-2019-14859: Improper Verification of Cryptographic Signature in Pure-Python ECDSA

ecdsa Updated 02 Oct 2025

Summary

01/04/2020
Yes i
Critical
9.1

CVE-2019-14859: Improper Verification of Cryptographic Signature in Pure-Python ECDSA. Affects ecdsa versions < 0.13.3. Fixed in 0.13.3. How to fix ↓

Also tracked for

The same CVE-2019-14859 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.

Free scan

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.

Check my app free

No signup required · Results in about 60 seconds

Sponsored Lume, the Habilume companion Habilume Habit tracker with a companion that grows with you Complete habits, earn Lume Points, and watch your Lume grow as you stay consistent. App Store Google Play

Background

The 'ecdsa' package is a Python library that provides an implementation of the Elliptic Curve Digital Signature Algorithm (ECDSA). It is commonly used for cryptographic operations, such as generating and verifying digital signatures. The vulnerability identified as CVE-2019-14859 affects all versions of python-ecdsa prior to 0.13.3. This vulnerability arises from the package's failure to correctly verify whether signatures used DER encoding. As a result, a malformed signature could be accepted, allowing for signature malleability. This vulnerability could be exploited by an attacker to create false transactions.

Vulnerability Detail

The vulnerability in python-ecdsa versions prior to 0.13.3 lies in the improper verification of cryptographic signatures using DER encoding. The package fails to adequately validate the signature format, allowing for the acceptance of malformed signatures. This oversight enables an attacker to manipulate the signature, potentially leading to the creation of false transactions. The vulnerability has a CVSS score of 9.1, indicating its critical severity.

How To Fix

Latest published version: 0.19.2 as of 23 Oct 2026

pip install --upgrade "ecdsa==0.19.2"

Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.

If you need the minimum change

0.13.3

This is the first release that contains the fix.

pip install --upgrade "ecdsa==0.13.3"

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Workaround

As a workaround, users can manually validate the signature format before processing it. This can be achieved by implementing custom checks to ensure that the signature adheres to the expected DER encoding format. Here is an example of a Python function that performs this validation:

def validate_signature(signature):
    # Implement custom validation logic here
    if not is_der_encoded(signature):
        raise ValueError('Invalid signature format')

# Usage:
signature = get_signature()
validate_signature(signature)

Conclusion

In conclusion, the CVE-2019-14859 vulnerability in python-ecdsa versions prior to 0.13.3 allows for the acceptance of malformed signatures, leading to signature malleability. This can be exploited by attackers to create false transactions. It is crucial to upgrade to the fixed version or implement the recommended workaround to mitigate the risk. For further support on vulnerability remediation, please contact DevNack.com.

See every vulnerability recorded for ecdsa →

Share this vulnerability

FAQ

The vulnerability allows an attacker to create false transactions by manipulating the signature. This can lead to various malicious activities, such as unauthorized transactions or the forging of digital identities.

You can use the Vulert Playground at Vulert Scanner to check if your application is affected by this vulnerability. The playground analyzes your Pipfile.lock and provides real-time alerts for open-source vulnerabilities, including this one.

There are no known instances of this vulnerability being actively exploited at the moment. However, it is crucial to apply the recommended fix to ensure the security and integrity of your applications.

Yes, a patch is available for this vulnerability. Upgrading to python-ecdsa version 0.13.3 or later will address the issue and prevent the acceptance of malformed signatures.

The CVSS score of this vulnerability is 9.1, indicating its critical severity.

Related vulnerabilities

Recent vulnerabilities recorded for ecdsa.

Sponsored Lume, the Habilume companion Habilume Habit tracker with a companion that grows with you Complete habits, earn Lume Points, and watch your Lume grow as you stay consistent. App Store Google Play

How To Fix

Latest published version: 0.19.2 as of 23 Oct 2026

pip install --upgrade "ecdsa==0.19.2"

Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.

If you need the minimum change

0.13.3

This is the first release that contains the fix.

pip install --upgrade "ecdsa==0.13.3"

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback