Every CVE Search/ Get API key

CVE-2023-44273

Duplicate Advisory: Consensys gnark-crypto allows Signature Malleability

9.8 CriticalFix available

Consensys gnark-crypto through 0.11.2 allows Signature Malleability. This occurs because deserialisation of EdDSA and ECDSA signatures does not ensure that the data is in a certain interval.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

1.05%Up 1.0 points since Sep 28, 2023
90%50%10%1%

What each source reports

NVD Score used 9.8

Consensys gnark-crypto through 0.11.2 allows Signature Malleability. This occurs because deserialisation of EdDSA and ECDSA signatures does not ensure that the data is in a certain interval.

Record
CVE-2023-44273
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-502
Updated
2026-11-02
CVE List No score

Consensys gnark-crypto through 0.11.2 allows Signature Malleability. This occurs because deserialisation of EdDSA and ECDSA signatures does not ensure that the data is in a certain interval.

Record
CVE-2023-44273
Updated
2026-11-02
EUVDEUVD-2023-2485 No score

Consensys gnark-crypto through 0.11.2 allows Signature Malleability. This occurs because deserialisation of EdDSA and ECDSA signatures does not ensure that the data is in a certain interval.

Record
EUVD-2023-2485
Updated
2026-11-03
GitHub AdvisoriesGHSA-9xfq-8j3r-xp5g 9.8

Duplicate Advisory: Consensys gnark-crypto allows Signature Malleability

Duplicate Advisory

This advisory has been withdrawn because it is a duplicate of GHSA-fr8m-434r-g3xp. This link is maintained to preserve external references.

Original Description

Consensys gnark-crypto through 0.11.2 allows Signature Malleability. This occurs because deserialisation of EdDSA and ECDSA signatures does not ensure that the data is in a certain interval.

Record
GHSA-9xfq-8j3r-xp5g
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-502
Updated
2026-11-02
GitHub AdvisoriesGHSA-fr8m-434r-g3xp 5.1

gnark-crypto doesn't range check input values during ECDSA and EdDSA signature deserialization

Impact

During deserialization of ECDSA and EdDSA signatures gnark-crypto did not check that the values are in the range [1, n-1] with n being the corresponding modulus (either base field modulus in case of R in EdDSA, and scalar field modulus in case of s,r in ECDSA and s in EdDSA). As this also allowed zero inputs, then it was possible to craft a signature which lead to null pointer dereference, leading to denial-of-service of an application. This also enabled weak signature malleability when the users assumed uniqueness of the serialized signatures (but not the underlying modulo reduced values).

We are not aware of any users impacted by the bug. The implemented signature schemes in gnark-crypto complement the in-circuit versions in gnark, allowing to have end-to-end tests.

Patches

The issue was patched in PR #449. The fix returns an error during deserialization if the values do not belong to the ranges [1, n-1].

The fix is included in release v0.12.0 and upwards.

Workarounds

Users can manually validate the inputs to be in corresponding ranges when using serialized signatures (or digests of them) as unique keys.

To address the denial-of-service, the users can install hook to recover panics and recover

Resources

Acknowledgement

Lack of range checks leading to signature malleability was reported by Verichains.

Record
GHSA-fr8m-434r-g3xp
CVSS 3.1
5.1 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
Weakness
CWE-347
Updated
2026-11-02
OSVGHSA-9xfq-8j3r-xp5g 9.8

Duplicate Advisory: Consensys gnark-crypto allows Signature Malleability

Duplicate Advisory

This advisory has been withdrawn because it is a duplicate of GHSA-fr8m-434r-g3xp. This link is maintained to preserve external references.

Original Description

Consensys gnark-crypto through 0.11.2 allows Signature Malleability. This occurs because deserialisation of EdDSA and ECDSA signatures does not ensure that the data is in a certain interval.

Record
GHSA-9xfq-8j3r-xp5g
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-502
Updated
2026-11-02
Show 4 moreShow less
OSVGHSA-fr8m-434r-g3xp 5.1

gnark-crypto doesn't range check input values during ECDSA and EdDSA signature deserialization

Impact

During deserialization of ECDSA and EdDSA signatures gnark-crypto did not check that the values are in the range [1, n-1] with n being the corresponding modulus (either base field modulus in case of R in EdDSA, and scalar field modulus in case of s,r in ECDSA and s in EdDSA). As this also allowed zero inputs, then it was possible to craft a signature which lead to null pointer dereference, leading to denial-of-service of an application. This also enabled weak signature malleability when the users assumed uniqueness of the serialized signatures (but not the underlying modulo reduced values).

We are not aware of any users impacted by the bug. The implemented signature schemes in gnark-crypto complement the in-circuit versions in gnark, allowing to have end-to-end tests.

Patches

The issue was patched in PR #449. The fix returns an error during deserialization if the values do not belong to the ranges [1, n-1].

The fix is included in release v0.12.0 and upwards.

Workarounds

Users can manually validate the inputs to be in corresponding ranges when using serialized signatures (or digests of them) as unique keys.

To address the denial-of-service, the users can install hook to recover panics and recover

Resources

Acknowledgement

Lack of range checks leading to signature malleability was reported by Verichains.

Record
GHSA-fr8m-434r-g3xp
CVSS 3.1
5.1 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
Weakness
CWE-347
Updated
2026-11-02
OSV No score

Consensys gnark-crypto through 0.11.2 allows Signature Malleability. This occurs because deserialisation of EdDSA and ECDSA signatures does not ensure that the data is in a certain interval.

Record
CVE-2023-44273
Updated
2026-11-02
OSVGO-2023-2096 No score

Signature malleability in github.com/consensys/gnark-crypto

Signature malleability in github.com/consensys/gnark-crypto

Record
GO-2023-2096
Updated
2026-11-02
OSVGO-2025-4027 No score

Gnark-crypto doesn't range check input values during ECDSA and EdDSA deserialization in github.com/consensys/gnark-crypto

Gnark-crypto doesn't range check input values during ECDSA and EdDSA deserialization in github.com/consensys/gnark-crypto

Record
GO-2025-4027
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
github.com/consensys/gnark-crypto
Go
before 0.12.0
0.12.0

History

History
RecordedChangedSources
affected
aliasesEUVD
first indexedCVE List, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2023-44273 is a critical vulnerability (CVSS 9.8) in Consensys Gnark-crypto, published September 28, 2023. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.05%, the 64th percentile. Fixed in github.com/consensys/gnark-crypto 0.12.0.

References

Show 5 moreShow less
MoveEnter Open