CVE-2025-57801
Unknown Unknown - Not Provided
BaseFortify

Publication date: 2025-08-22

Last updated on: 2025-09-12

Assigner: GitHub, Inc.

Description
gnark is a zero-knowledge proof system framework. In versions prior to 0.14.0, the Verify function in eddsa.go and ecdsa.go used the S value from a signature without asserting that 0 ≀ S < order, leading to a signature malleability vulnerability. Because gnark’s native EdDSA and ECDSA circuits lack essential constraints, multiple distinct witnesses can satisfy the same public inputs. In protocols where nullifiers or anti-replay checks are derived from R and S, this enables signature malleability and may allow double spending. This issue has been addressed in version 0.14.0.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2025-08-22
Last Modified
2025-09-12
Generated
2026-05-07
AI Q&A
2025-08-22
EPSS Evaluated
2026-05-05
NVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
consensys gnark to 0.14.0 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
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.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart