Autonomint Colored Dollar V1 — disclosed vulnerability reports and payouts
Every publicly disclosed and closed bug bounty report we hold for Autonomint Colored Dollar V1, with our own summary of each finding and a link to the original disclosure.
- Reports indexed
- 10
- Total paid
- $0
- Critical
- 0
- Largest payout
- $0
This page collects the 10 closed, publicly disclosed Autonomint Colored Dollar V1 reports indexed on Coin Buggie. Nothing here is active or unpatched — every entry was published by the programme or the researcher after remediation.
The findings concentrate in Logic error, across EVM-Solidity. Reading a single protocol end to end is the fastest way to see which assumptions its codebase repeatedly gets wrong, which is usually a better predictor of where the next finding lives than the category alone.
Use the vulnerability class links below to compare these findings against the same bug class in other protocols.
What reviewers look for
- Logic error findings disclosed against Autonomint Colored Dollar V1
Curated highlights
The largest disclosed payouts in this group, with our own summary of each. Every report links back to the original disclosure.
Autonomint Colored Dollar V1: Missing cds deposit amount in swapCollateralForUSDT
In the Autonomint Colored Dollar protocol, swapCollateralForUSDT() converts remaining upside Ether collateral into USDT when borrowers repay after a price increase, crediting this profit to CDS owners' cumulative value. However, the total CdsDepositedAmount is not updated to reflect this profit. When a CDS owner withdraws, their entitled amount (deposit + cumulative gain + option fees) exceeds the tracked total deposit, causing the deduction to underflow and the withdrawal to revert, effectively locking CDS owners out of their funds.
Autonomint Colored Dollar V1: `borrowing::liquidate()` sends the wrong liquidation index to the destination chain, overwritting liquidation information and getting collateral stuck
In Autonomint's Colored Dollar V1 omnichain lending system, the `borrowing::liquidate()` function transmits the wrong liquidation index when relaying liquidation information to another chain. It sends the local `noOfLiquidations` counter rather than the globally synchronized `omniChainData.noOfLiquidations` value, so a liquidation initiated on chain B can be tagged with an index already used by a prior liquidation on chain A. This overwrites the existing liquidation record on chain A, causing that position's collateral to become permanently stuck and unwithdrawable. The flaw is a pure logic error in the cross-chain messaging parameter selection and is economically impactful because collateral can no longer be recovered.
Autonomint Colored Dollar V1: `borrowing::withdraw()` at a loss will increase downside protected and misscalculate option fees
In Autonomint's borrowing protocol, calling withdraw() when the position is at a loss increments the global downsideProtected figure. That figure is then subtracted from the total CDS pool value when computing the percentage-based option fee that gets folded into the cumulative rate. Because the resulting cumulative rate is later applied against each CDS depositor's full normalized deposit amount rather than the reduced pool value, the per-depositor fee payout is overstated. The write-up demonstrates with a worked example (1000 USD deposit, 100 downside protection) that a depositor receives ~55.6 option fees for only 50 USD charged, siphoning value from other CDS depositors and threatening their ability to withdraw.
Autonomint Colored Dollar V1: Borrower withdrawing at a loss will cause losses for cds depositors that only withdraw after the price recovers
In Autonomint's Colored Dollar V1, borrowers that withdraw during a price decline receive downside protection drawn from CDS depositor funds. The accounting flaw: a CDS depositor who does NOT withdraw at the depressed price but instead waits for the collateral price to recover gets their full deposit back as if no loss ever occurred, even though the downside-protection deduction was already applied to the shared `cdsDepositedAmount` accounting. When the price subsequently normalizes and the cumulative value gain offsets the prior loss, a later CDS depositor who deposits after recovery is left holding a short position: their withdrawal reverts due to an underflow on the depleted `cdsDepositedAmount`. This lets earlier depositors socialize their loss onto users who join later at the same (recovered) price, breaking the protocol's loss-sharing invariant and causing griefing-style insolvency on withdrawal.
Autonomint Colored Dollar V1: Missing Update to `omnichain.totalAvailableLiquidationAmount` in `withdrawUser`
Autonomint Colored Dollar V1's CDS pool tracks a global liquidation-availability figure (omnichain.totalAvailableLiquidationAmount) that is incremented when users deposit into the CDS pool but is never decremented when they withdraw. Because withdrawUser leaves this value inflated, liquidation gains are later distributed across a larger recorded pool than actually exists, causing a portion of gains to remain locked in the protocol and shrinking the shares received by remaining participants. The report provides a numeric walkthrough and proposes a one-line decrement of the withdrawal amount as the fix.
Autonomint Colored Dollar V1: odosAssembledData can be manipulated
In the Autonomint Colored Dollar V1 lending protocol, the signature generated by the backend server for the withDraw collateral-swap flow is not bound to a specific borrower position or expected swap amount. Because odosAssembledData signatures are reusable across withdrawals, a borrower can intentionally supply an odosAssembledData whose input amount is smaller than their actual remaining collateral, causing the treasury to only swap part of the collateral and lock the rest in the contract. This yields less USDT than intended and permanently strands user funds.
All reports in this group
- Autonomint Colored Dollar V1: Inconsistent Use of `lastCumulativeRate` in `depositTokens()` and `withdraw()` Functions in `Borrowings` ContractLogic error$0
- Autonomint Colored Dollar V1: Health ratio is hardcoded causing issues once the LTV is updatedLogic error$0
- Autonomint Colored Dollar V1: DOS to `liquidateBorrowPosition` on MODE chainLogic error$0
- Autonomint Colored Dollar V1: Liquidation will reduce total cds deposited amount, leading to incorrect option feesLogic error$0