{"id":"CVE-2026-62162","kind":"vulnerability","aliases":["CVE-2026-62162"],"related":[],"title":"Hydra: pending Cardano deposits can be redirected by any third party","description":"Hydra is a layer-two scalability solution for Cardano. Prior to 2.1.0, the `Claim` branch in `hydra-plutus/validators/deposit.ak` checks only that `datum.head_id` matches the attacker-controlled `redeemer.currencySymbol` and that the transaction is valid before the deposit deadline. It neither requires spending the Head state-token UTxO in the same transaction nor constrains outputs. After a deposit made through `POST /commit` is confirmed, any third party able to build a Cardano transaction can observe and consume the pending deposit UTxO before its deadline and redirect the assets to an arbitrary address. A standalone deposit spend invokes no Head validator, bypassing its safety checks; historical head-ID binding and the Aiken rewrite retained this missing invariant. The default deadline is three times depositPeriod, so the described attack applies to pending deposits before that deadline. This issue is fixed in version 2.1.0.","summary":"Hydra, a Cardano layer-two scalability solution, has a deposit validator that does not check that the Head state-token UTxO is spent in the same transaction. Before the deposit deadline, any party able to build a Cardano transaction can consume a pending deposit and send the assets to an arbitrary address.","severity":"high","cvss":8.2,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["blockchain","cardano","hydra","package"],"not_affected_if":["hydra-2.1.0-or-later","no-pending-deposits"],"how_to_check":"- Check the Hydra version in use: `hydra-node --version` (unknown if the sources give a command for this).\n- Look for deposits made through `POST /commit` that are still pending, before the deposit deadline (three times depositPeriod by default).","fix":"- Hydra: `2.1.0`","status":"open","published_at":"2026-10-30T19:18:32+00:00","first_seen_at":"2026-10-30T19:25:30+00:00","triaged_at":"2026-10-30T19:25:54+00:00","updated_at":"2026-10-30T19:25:54+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-30T19:25:54Z","model":"claude-haiku-5-5","output":{"fix":"- Hydra: `2.1.0`","reach":"internet","title":"Hydra: pending Cardano deposits can be redirected by any third party","impact":"high","summary":"Hydra, a Cardano layer-two scalability solution, has a deposit validator that does not check that the Head state-token UTxO is spent in the same transaction. Before the deposit deadline, any party able to build a Cardano transaction can consume a pending deposit and send the assets to an arbitrary address.","audience":"developers","category":"package","nicknames":[],"who_cares":["cardano","hydra","blockchain"],"confidence":0.7,"fix_status":"available","needs_auth":"no","worst_case":"third party redirects pending deposited assets to an arbitrary address","analyst_note":"","how_to_check":"- Check the Hydra version in use: `hydra-node --version` (unknown if the sources give a command for this).\n- Look for deposits made through `POST /commit` that are still pending, before the deposit deadline (three times depositPeriod by default).","plain_action":"","needs_analyst":false,"not_affected_if":["hydra-2.1.0-or-later","no-pending-deposits"],"who_is_affected":"Teams running a Hydra Head on Cardano with versions before 2.1.0 that accept deposits through POST /commit. Exposure exists only while a deposit is pending and before its deadline. Teams not running Hydra, or not using deposits, can skip it.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.000698,"input_tokens":4328,"output_tokens":530,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-2026':13A,16A '-62162':14A,17A '/commit':141C '/validators/deposit.ak':96C '2.1.0':88C,221C 'abl':57B,147C 'address':75B,171C 'aiken':191C 'appli':208C 'arbitrari':74B,170C 'asset':71B,167C 'attack':105C,207C 'attacker-control':104C 'bind':188C 'blockchain':18B 'branch':91C 'build':59B,149C 'bypass':180C 'cardano':3A,19B,24B,61B,85C,151C 'check':37B,97C,183C 'claim':90C 'confirm':143C 'constrain':133C 'consum':64B,156C 'control':106C 'cve':12A,15A 'datum.head':100C 'deadlin':54B,117C,163C,199C,214C 'default':198C 'deposit':4A,32B,53B,67B,116C,137C,159C,174C,211C 'depositperiod':203C 'describ':206C 'fix':218C 'head':40B,123C,178C,186C 'head-id':185C 'histor':184C 'hydra':1A,20B,22B,76C,94C 'hydra-plutus':93C 'id':101C,187C 'invari':196C 'invok':176C 'issu':216C 'layer':26B,80C 'layer-two':25B,79C 'made':138C 'match':102C 'miss':195C 'neither':119C 'observ':154C 'output':134C 'packag':21B 'parti':11A,56B,146C 'pend':2A,66B,158C,210C 'plutus':95C 'post':140C 'prior':86C 'redeemer.currencysymbol':107C 'redirect':7A,165C 'requir':120C 'retain':193C 'rewrit':192C 'safeti':182C 'scalabl':28B,82C 'send':69B 'solut':29B,83C 'spend':121C,175C 'spent':46B 'standalon':173C 'state':42B,125C 'state-token':41B,124C 'third':10A,145C 'three':201C 'time':202C 'token':43B,126C 'transact':50B,62B,111C,131C,152C 'two':27B,81C 'utxo':44B,127C,160C 'valid':33B,113C,179C 'version':220C","nicknames":[],"mitigations":[],"who_affected":"Teams running a Hydra Head on Cardano with versions before 2.1.0 that accept deposits through POST /commit. Exposure exists only while a deposit is pending and before its deadline. Teams not running Hydra, or not using deposits, can skip it.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"first_public_at":"2026-10-30T19:18:32+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-62162","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-62162","severity":null,"published_at":"2026-10-30T19:18:32+00:00","modified_at":"2026-10-30T19:18:32+00:00","first_seen_at":"2026-10-30T19:25:30+00:00","fetched_at":"2026-10-30T19:25:30+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}