CVE-2023-44273

9.8 CRITICAL

📋 TL;DR

CVE-2023-44273 is a signature malleability vulnerability in Consensys gnark-crypto cryptographic library that allows attackers to create multiple valid signatures for the same message by manipulating signature data during deserialization. This affects applications using gnark-crypto for EdDSA or ECDSA signature verification, potentially enabling signature forgery or replay attacks. The vulnerability impacts any system using vulnerable versions of this library for cryptographic operations.

💻 Affected Systems

Products:
  • Consensys gnark-crypto
Versions: through 0.11.2
Operating Systems: all
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all systems using gnark-crypto for EdDSA or ECDSA signature operations. The vulnerability is in the library itself, not dependent on specific configurations.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of cryptographic integrity allowing signature forgery, authentication bypass, transaction manipulation in blockchain applications, and potential financial loss or unauthorized access.

🟠

Likely Case

Signature replay attacks, transaction manipulation in systems using vulnerable signatures for verification, and potential authentication bypass in affected applications.

🟢

If Mitigated

Limited impact with proper signature validation controls, but still presents cryptographic integrity risks that could be exploited in targeted attacks.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires understanding of cryptographic signature manipulation and access to systems using vulnerable signature verification. No public exploit code has been identified.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 0.12.0 and later

Vendor Advisory: https://github.com/Consensys/gnark-crypto/releases

Restart Required: Yes

Instructions:

1. Update gnark-crypto dependency to version 0.12.0 or later. 2. Update go.mod to require github.com/Consensys/gnark-crypto v0.12.0 or higher. 3. Rebuild and redeploy affected applications. 4. Restart services using the updated library.

🔧 Temporary Workarounds

Implement custom signature validation

all

Add additional validation to ensure signatures are in the proper interval before accepting them

// Add validation logic in signature verification code to check signature bounds

🧯 If You Can't Patch

  • Implement additional signature validation layers to check for signature malleability
  • Monitor for unusual signature patterns and implement rate limiting on signature verification operations

🔍 How to Verify

Check if Vulnerable:

Check go.mod or dependency files for gnark-crypto version. If version is <=0.11.2, the system is vulnerable.

Check Version:

go list -m github.com/Consensys/gnark-crypto

Verify Fix Applied:

Verify gnark-crypto version is >=0.12.0 in dependencies and rebuild applications with the updated library.

📡 Detection & Monitoring

Log Indicators:

  • Multiple valid signatures for same message
  • Signature verification failures with unusual parameters
  • Unexpected signature validation successes

Network Indicators:

  • Repeated transactions with modified signatures
  • Unusual signature patterns in cryptographic operations

SIEM Query:

Search for signature verification events with identical message content but different signature values

🔗 References

📤 Share & Export