Skip to main content
← All vulnerabilities
CVE-2025-57801GO-2025-3912GHSA-95V9-HV42-PWRJ

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

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 0.14.0
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: poc
  • Automatable: no
  • Technical impact: partial

Summary

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.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: poc · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • Consensys gnark

    fixed in 0.14.0

  • github.com/consensys/gnarkGo

    fixed in 0.14.0

References 2

GitHub · Consensys/gnark