CVE-2023-38701
📋 TL;DR
This vulnerability in Hydra (Cardano's layer-2 scalability solution) allows attackers to steal funds that users are trying to commit to Hydra heads and prevent Hydra heads from opening. The flaw is in the commit validator's ViaAbort redeemer check, which permits unauthorized spending of committed UTxOs. All Hydra users attempting to commit funds are affected.
💻 Affected Systems
- Hydra (Cardano layer-2 solution)
📦 What is this software?
Hydra by Iohk
⚠️ Risk & Real-World Impact
Worst Case
Attackers steal all funds users attempt to commit to any Hydra head, causing total loss of committed assets and preventing all Hydra head operations.
Likely Case
Opportunistic attackers target vulnerable Hydra heads to steal committed funds, particularly during periods of high transaction activity.
If Mitigated
With proper monitoring and quick response, losses are limited to small amounts before detection and mitigation.
🎯 Exploit Status
The vulnerability is in the smart contract logic and requires blockchain transaction submission but no authentication.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 0.12.0
Vendor Advisory: https://github.com/input-output-hk/hydra/security/advisories/GHSA-6x9v-7x5r-w8w6
Restart Required: Yes
Instructions:
1. Stop all Hydra services. 2. Update to Hydra version 0.12.0 or later. 3. Restart Hydra services. 4. Verify the new version is running.
🔧 Temporary Workarounds
Disable Hydra head operations
allTemporarily stop all Hydra head commit operations to prevent fund exposure.
# Stop Hydra services
systemctl stop hydra-node
# Or equivalent service management command
🧯 If You Can't Patch
- Monitor for unauthorized ViaAbort transactions and implement emergency response procedures
- Implement additional transaction validation layers before broadcasting to network
🔍 How to Verify
Check if Vulnerable:
Check Hydra version: if version is <0.12.0, system is vulnerable.
Check Version:
hydra-node --version
Verify Fix Applied:
Confirm Hydra version is 0.12.0 or higher and monitor for successful Hydra head operations without unauthorized ViaAbort transactions.
📡 Detection & Monitoring
Log Indicators:
- Unauthorized ViaAbort redeemer usage in commit validator
- Failed Hydra head initializations
- Unexpected fund transfers from commit addresses
Network Indicators:
- Unusual transaction patterns targeting Hydra commit addresses
- Multiple ViaAbort transactions from non-participant addresses
SIEM Query:
transaction_type:"ViaAbort" AND validator:"commit" AND NOT address IN [participant_addresses]
🔗 References
- https://github.com/input-output-hk/hydra/blob/master/CHANGELOG.md#0120---2023-08-18
- https://github.com/input-output-hk/hydra/blob/master/hydra-plutus/src/Hydra/Contract/Commit.hs#L94-L97
- https://github.com/input-output-hk/hydra/blob/master/hydra-plutus/src/Hydra/Contract/Util.hs#L32-L42
- https://github.com/input-output-hk/hydra/security/advisories/GHSA-6x9v-7x5r-w8w6
- https://github.com/input-output-hk/hydra/blob/master/CHANGELOG.md#0120---2023-08-18
- https://github.com/input-output-hk/hydra/blob/master/hydra-plutus/src/Hydra/Contract/Commit.hs#L94-L97
- https://github.com/input-output-hk/hydra/blob/master/hydra-plutus/src/Hydra/Contract/Util.hs#L32-L42
- https://github.com/input-output-hk/hydra/security/advisories/GHSA-6x9v-7x5r-w8w6