CVE-2025-57801
BaseFortify
Publication date: 2025-08-22
Last updated on: 2025-09-12
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| consensys | gnark | to 0.14.0 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-347 | The product does not verify, or incorrectly verifies, the cryptographic signature for data. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability exists in gnark versions prior to 0.14.0 where the Verify function in eddsa.go and ecdsa.go used the S value from a signature without checking that it is within the valid range (0 β€ S < order). This lack of validation leads to signature malleability, meaning multiple distinct signatures can be considered valid for the same message. Because gnark's native EdDSA and ECDSA circuits lack constraints to prevent this, it allows multiple witnesses to satisfy the same public inputs, enabling signature malleability and potentially allowing double spending in protocols relying on these signatures.
How can this vulnerability impact me? :
The vulnerability can lead to signature malleability, which means an attacker can create different valid signatures for the same message. In protocols where nullifiers or anti-replay checks depend on signature components R and S, this can allow double spending or replay attacks, undermining the integrity and security of transactions or operations relying on gnark's signature verification.
What immediate steps should I take to mitigate this vulnerability?
Upgrade gnark to version 0.14.0 or later, as this version addresses the signature malleability vulnerability by properly validating the S value in signatures.