Skip to main content

Smart Contract Security

A standardized database of common Cardano smart contract vulnerabilities. Use this as a reference when building and auditing dApps.

Vulnerability Database

VulnerabilityIdentifierDescription
Double Satisfactiondouble-satisfactionMultiple UTxOs in one transaction - each validator sees the same outputs, so one payment satisfies all of them
Missing UTxO Authenticationmissing-utxo-authenticationAnyone can create UTxOs at script addresses - without authentication (validity tokens), can't distinguish legitimate from fake
Time Handlingtime-handlingValidators only see time intervals, not exact timestamps - incorrect bound handling enables time manipulation
Token Securitytoken-securityNative tokens, validation tokens, dust attacks, and execution limit exploits
Unbounded Valueunbounded-valueUnlimited tokens in UTxO cause size/execution limit failures - funds become unspendable
Unbounded Datumunbounded-datumDatum growing without limits eventually exceeds resource constraints
Unbounded Inputsunbounded-inputsToo many UTxOs required simultaneously hits transaction size/resource limits
Other Redeemerother-redeemerLogic expecting specific redeemer bypassed by using different redeemer on same script
Other Token Nameother-token-nameMinting policies not checking all token names allow unintended tokens under same policy ID
Arbitrary Datumarbitrary-datumNot validating datum when locking allows invalid data causing spend failures
UTxO Contentionutxo-contentionShared global state creates contention when multiple users access same UTxO
Cheap Spamcheap-spamLow-cost spam actions stall legitimate protocol operations
Insufficient Staking Controlinsufficient-staking-controlMissing staking credential checks allow reward redirection
Locked Valuelocked-valuePermanent value locking - consider economic tradeoffs

Learn By Doing

Cardano CTF - Interactive security game where you exploit vulnerable contracts.

Sources

Content for reference:

  • MLabs - Formal vulnerability framework
  • Invariant0 - In-depth security analysis
  • Mesh - Code examples