CVE-2025-57801

gnark is vulnerable to signature malleability in EdDSA and ECDSA due to missing scalar checks

State
Published
Severity
8.6 High
Published
Aug 22, 2025
Updated
Aug 22, 2025
Reserved
Aug 20, 2025

Read the record on cve.org

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.

Scores

CVSSScoreVectorSource
4.08.6 HighCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:NGitHub_M

Weaknesses

  • CWE-347 Improper Verification of Cryptographic Signature

Affected Products

ProductVersions
gnarkConsensys
  • < 0.14.0Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.