CVE-2023-33241
📋 TL;DR
This vulnerability affects cryptocurrency wallets implementing GG18 or GG20 threshold signature schemes (TSS). An attacker can extract the full ECDSA private key by injecting a malicious Paillier key and cheating in range proofs, potentially requiring only 16 signatures to compromise the wallet. This impacts any system using vulnerable TSS implementations for multi-party computation.
💻 Affected Systems
- Cryptocurrency wallets implementing GG18 or GG20 TSS protocols
📦 What is this software?
Gg18 by Gg18 Project
Gg20 by Gg20 Project
⚠️ Risk & Real-World Impact
Worst Case
Complete theft of all cryptocurrency assets secured by vulnerable wallets, with irreversible loss of funds and potential compromise of associated accounts.
Likely Case
Targeted attacks against high-value cryptocurrency wallets, leading to significant financial losses for individuals and organizations using vulnerable implementations.
If Mitigated
Limited impact if proper key rotation and monitoring are implemented, though some exposure remains until patching.
🎯 Exploit Status
Exploitation requires participation in the TSS protocol as one of the parties, making it unsuitable for mass scanning but effective for targeted attacks.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Varies by implementation; check specific vendor updates
Vendor Advisory: https://www.fireblocks.com/blog/gg18-and-gg20-paillier-key-vulnerability-technical-report/
Restart Required: No
Instructions:
1. Identify all systems using GG18/GG20 TSS implementations. 2. Update to patched versions from vendors. 3. Implement proper range proof verification. 4. Rotate all cryptographic keys. 5. Validate Paillier key generation.
🔧 Temporary Workarounds
Disable vulnerable TSS implementations
allTemporarily disable GG18 and GG20 TSS protocols until patched
Implementation-specific; consult vendor documentation
Implement additional key validation
allAdd strict validation of Paillier keys and range proofs
Add cryptographic validation checks before accepting keys
🧯 If You Can't Patch
- Implement strict monitoring for unusual signature patterns or key generation attempts
- Isolate TSS operations to dedicated, air-gapped systems with limited network access
🔍 How to Verify
Check if Vulnerable:
Check if your cryptocurrency wallet or MPC solution uses GG18/GG20 TSS protocols and review implementation source code for proper range proof validation
Check Version:
Implementation-specific; consult vendor documentation for version checking commands
Verify Fix Applied:
Verify that updated implementations include proper Paillier key validation and range proof checks as described in security advisories
📡 Detection & Monitoring
Log Indicators:
- Multiple failed signature attempts
- Unusual key generation patterns
- Abnormal TSS protocol messages
Network Indicators:
- Repeated TSS protocol sessions with same participants
- Unusual network traffic patterns during key generation
SIEM Query:
Implementation-specific; monitor for patterns matching known exploit behavior from public PoCs
🔗 References
- https://eprint.iacr.org/2019/114.pdf
- https://eprint.iacr.org/2020/540.pdf
- https://github.com/fireblocks-labs/mpc-ecdsa-attacks-23
- https://github.com/fireblocks-labs/safeheron-gg20-exploit-poc
- https://www.fireblocks.com/blog/gg18-and-gg20-paillier-key-vulnerability-technical-report/
- https://eprint.iacr.org/2019/114.pdf
- https://eprint.iacr.org/2020/540.pdf
- https://github.com/fireblocks-labs/mpc-ecdsa-attacks-23
- https://github.com/fireblocks-labs/safeheron-gg20-exploit-poc
- https://www.fireblocks.com/blog/gg18-and-gg20-paillier-key-vulnerability-technical-report/