CVE-2023-34458
📋 TL;DR
A vulnerability in mx-chain-go's transaction processing incorrectly increments the sender's nonce when a relayed inner transaction fails, allowing an attacker to cause a limited denial-of-service against targeted accounts by exhausting their nonce sequence. This affects all MultiversX blockchain nodes running vulnerable versions. The issue was a strict processing error during block validation.
💻 Affected Systems
- mx-chain-go
📦 What is this software?
Mx Chain Go by Multiversx
⚠️ Risk & Real-World Impact
Worst Case
Targeted account becomes unusable due to nonce exhaustion, requiring manual intervention to reset or recover the account, disrupting blockchain operations.
Likely Case
Limited DoS against specific accounts, causing transaction failures and requiring account nonce resynchronization.
If Mitigated
Minimal impact with proper monitoring and rapid patching; transaction failures would be logged but not cause persistent account issues.
🎯 Exploit Status
Exploitation requires ability to submit relayed transactions to the network. No public exploit code has been disclosed.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 1.4.17
Vendor Advisory: https://github.com/multiversx/mx-chain-go/security/advisories/GHSA-j494-7x2v-vvvp
Restart Required: Yes
Instructions:
1. Stop the mx-chain-go service. 2. Backup configuration and data. 3. Update to version 1.4.17 or later. 4. Restart the service. 5. Verify the new version is running.
🔧 Temporary Workarounds
Disable relayed transactions
allTemporarily disable processing of relayed transactions if not required for your node's operation
Modify node configuration to reject relayed transactions
🧯 If You Can't Patch
- Monitor transaction logs for failed relayed transactions and unusual nonce increments
- Implement rate limiting on transaction submission to reduce attack surface
🔍 How to Verify
Check if Vulnerable:
Check if mx-chain-go version is below 1.4.17
Check Version:
./node --version or check service status output
Verify Fix Applied:
Verify version is 1.4.17 or higher and check that relayed transaction processing behaves correctly
📡 Detection & Monitoring
Log Indicators:
- Multiple failed relayed transactions from same sender
- Unexpected nonce increments for accounts
- Transaction validation errors in block processing
Network Indicators:
- Unusual patterns of relayed transaction submissions
- Spike in transaction failures for specific accounts
SIEM Query:
source="mx-chain-go" AND ("relayed transaction failed" OR "nonce increment" OR "validation error")
🔗 References
- https://github.com/multiversx/mx-chain-go/blob/babdb144f1316ab6176bf3dbd7d4621120414d43/integrationTests/vm/txsFee/relayedMoveBalance_test.go#LL165C14-L165C14
- https://github.com/multiversx/mx-chain-go/commit/babdb144f1316ab6176bf3dbd7d4621120414d43
- https://github.com/multiversx/mx-chain-go/releases/tag/v1.4.17
- https://github.com/multiversx/mx-chain-go/security/advisories/GHSA-j494-7x2v-vvvp
- https://github.com/multiversx/mx-chain-go/blob/babdb144f1316ab6176bf3dbd7d4621120414d43/integrationTests/vm/txsFee/relayedMoveBalance_test.go#LL165C14-L165C14
- https://github.com/multiversx/mx-chain-go/commit/babdb144f1316ab6176bf3dbd7d4621120414d43
- https://github.com/multiversx/mx-chain-go/releases/tag/v1.4.17
- https://github.com/multiversx/mx-chain-go/security/advisories/GHSA-j494-7x2v-vvvp