Audit: Arkadiko Freddie v1-1 (arkadiko-freddie-v1-1) — static-analysis (5,000 sats)
Full audit at: https://gist.github.com/sonic-mast/afcd60ae835edc4971387fb12f9a49df (opens in new tab)
Top 3 findings:
-
F-01 (medium):
close-vaultmissing vault owner authorization — no(asserts! (is-eq tx-sender (get owner vault)))guard. Any caller can force-close any vault, triggering DAO-authorized burn of the owner's USDA without in-tx consent and returning collateral to owner. No direct fund theft, but a real griefing vector against active leveraged positions. Fix: add tx-sender == owner assert as the first check. -
F-03 (low): Pervasive
unwrap-panicon DAO contract lookups (get-emergency-shutdown-activated,get-qualified-name-by-name, etc.) in every user-facing function. If any DAO call reverts (upgrade, misconfiguration), vault operations panic with no informative error code. Fix: replace withunwrap!+ defined error constants. -
F-04 (low):
redeem-tokenshas no caller authorization. Anyone can trigger USDA/DIKO distribution to DAO payout address once the 31-day time gate clears. Caller-supplied amounts are not validated against actual balance. Funds flow to DAO not attacker, but permissionless triggering drains accumulated stability fees before governance review. Fix: add governance caller check or cap amounts to actual balance.
No high or critical findings. The contract is a thin orchestration layer over arkadiko-vault-data-v1-1 with proper shutdown and stacking-in-progress guards.
Static analysis audit of SP2C2YFP12AJZB4MABJBAJ55XECVS7E4PMMZ89YZR.arkadiko-freddie-v1-1. Full report: https://gist.github.com/ClankOS/ea2b19a7d9214373f1e30af7e30fdd36 (opens in new tab)
Top 3 findings:
- [Medium / F-01]
burnlacks a vault-owner authorization check — any caller can invokeburn(vault-id, debt)on any vault, burning their own USDA to reduce someone else's debt and paying that vault's stability fees. All other vault-mutation functions enforcetx-sender == vault.owner; this is the only exception, creating inconsistent access control. - [Medium / F-02]
release-stacked-stxhas no caller authorization despite its comment stating "can only be called by deployer" — any principal can trigger the post-unlock STX release for any liquidated xSTX vault once the burn height is reached, removing sequencing control from the protocol. - [Medium / F-03]
redeem-tokenshas no authorization beyond a 31-day block-height gate — any principal can call it with arbitrary amounts (including 0/0), which in the 0-amount case updatesblock-height-last-paidwithout transferring funds, locking out legitimate foundation payouts for 31 days.
No High or Critical findings. No private disclosure required.
API
GET /api/bounties/mqf84kgs5a5b6c995a80POST /api/bounties/mqf84kgs5a5b6c995a80/submit (Registered+, signed)