Ethereum Credit Guild — disclosed vulnerability reports and payouts
Every publicly disclosed and closed bug bounty report we hold for Ethereum Credit Guild, with our own summary of each finding and a link to the original disclosure.
- Reports indexed
- 29
- Total paid
- $0
- Critical
- 0
- Largest payout
- $0
This page collects the 29 closed, publicly disclosed Ethereum Credit Guild reports indexed on CoinBuggie. Nothing here is active or unpatched — every entry was published by the programme or the researcher after remediation.
The findings concentrate in Access control, Governance attack, Logic error, Front-running / MEV, Flash loan attack, 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
- Access control findings disclosed against Ethereum Credit Guild
- Governance attack findings disclosed against Ethereum Credit Guild
- Logic error findings disclosed against Ethereum Credit Guild
- Front-running / MEV findings disclosed against Ethereum Credit Guild
- Flash loan attack findings disclosed against Ethereum Credit Guild
Curated highlights
The largest disclosed payouts in this group, with our own summary of each. Every report links back to the original disclosure.
Ethereum Credit Guild: Auction manipulation by block stuffing and reverting on ERC-777 hooks
Ethereum Credit Guild deployment configurations set relatively short Dutch auction durations, creating an vulnerability to block-stuffing attacks on Layer-2 networks like Optimism and Arbitrum. An attacker can exploit low fixed gas fees on L2s to censor competing liquidators from placing bids while the auction price drops. Furthermore, combining block stuffing with ERC-777 collateral hooks allows the attacker to force transfers to revert during early auction stages without incurring gas costs. This allows malicious actors to buy back their collateral at a fraction of its market value, leaving bad debt in the protocol and inflicting losses on term stakers.
Ethereum Credit Guild: There is no way to liquidate a position if it breaches `maxDebtPerCollateralToken` value creating bad debt.
In Ethereum Credit Guild, loans can exceed the protocol's maximum debt per collateral token threshold without becoming eligible for liquidation. Because the contract only allows loans to be called if the term is offboarded or a partial repayment deadline is missed, borrowers who meet the minimum partial repayment requirement can keep underwater positions open indefinitely. In configurations where periodic partial repayments are disabled, positions that breach borrowing limits can never be liquidated individually. This creates unbacked loans and bad debt across the protocol unless governance force-closes the entire lending term.
Ethereum Credit Guild: Inability to offboard term twice in a 7-day period may lead to bad debt to the market
Ethereum Credit Guild's term offboarding mechanism uses a hardcoded 7-day block duration check in `proposeOffboard()` to prevent spamming offboard proposals for a given `LendingTerm`. If a term is offboarded and subsequently re-onboarded within 7 days, `lastPollBlock` retains the block number of the first proposal. If market conditions worsen and voters attempt to initiate a second offboard proposal within that 7-day window, the call reverts because the protocol views the poll window as still active. This design flaw prevents emergency offboarding of risky terms during the window, exposing the lending market to unmitigated bad debt.
Ethereum Credit Guild: `PnL` system can be broken by large users intentionally or unintentionally.
An arithmetic underflow in Ethereum Credit Guild's ProfitManager contract allows large loan defaults to brick protocol operations. When processing system losses in notifyPnL, the contract burns surplus buffer tokens before calculating the new credit multiplier using the expression creditTotalSupply minus loss. If the loss exceeds the remaining total supply after buffer burning, the subtraction underflows and reverts. Because liquidation auctions rely on onBid invoking notifyPnL, this bug prevents liquidators from completing auctions on bad debt, causing unresolvable denial of service and accumulation of unliquidatable loans.
Ethereum Credit Guild: LendingTerm.sol `_partialRepay()` A user cannot partial repay a loan with `0` interest
A validation check within Ethereum Credit Guild's `LendingTerm.sol` contract prevents borrowers from partially repaying loans under zero-interest terms. When executing `_partialRepay()`, the contract calculates `interestRepaid` and enforces that both `principalRepaid` and `interestRepaid` are non-zero. For loans configured with a 0% interest rate, `interestRepaid` evaluates to zero, causing the transaction to revert with `LendingTerm: repay too small`. This blocks partial debt repayments for zero-interest lending terms, forcing users to either repay the full debt amount or remain in their position.
Ethereum Credit Guild: Users staking via the `SurplusGuildMinter` can be immediately slashed when staking into a gauge that had previously incurred a loss
A logic flaw in Ethereum Credit Guild's SurplusGuildMinter causes immediate slashing of users staking into any gauge that previously experienced a loss. When a user stakes into a term via SurplusGuildMinter, the initial call to getRewards evaluates slashing conditions using an uninitialized memory struct where userStake.lastGaugeLoss defaults to zero. Consequently, if the gauge has any historical loss timestamp greater than zero, the user is automatically flagged as slashed. When the user later attempts to claim rewards or withdraw their principal via unstake, the protocol clears their stake struct while denying token transfers, causing a permanent loss of deposited credit tokens.
All reports in this group
- Ethereum Credit Guild: The gauge status wasn't checked before reducing the user's gauge weight.Front-running / MEV$0
- Ethereum Credit Guild: Malicious borrower can decrease Guild holders rewardFlash loan attack$0
- Ethereum Credit Guild: The creation of bad debt (`mark-down` of Credit) can force other loans in auction to also create bad debtGovernance attack$0
- Ethereum Credit Guild: Anyone can prolong the time for the rewards to get distributedGovernance attack$0
- Ethereum Credit Guild: Rounding errors can cause ERC20RebaseDistributor transfers and mints to fail for underflowInteger overflow/underflow$0
- Ethereum Credit Guild: LendingTerm `debtCeiling` function uses `creditMinterBuffer` incorrectlyLogic error$0
- Ethereum Credit Guild: Wrong ProfitManager in GuildToken, will always revert for other types of gauges leading to bad debtAccess control$0
- Ethereum Credit Guild: `LendingTerm` inconsistency between debt ceiling as calculated in `borrow()` and `debtCeiling()`Logic error$0
- Ethereum Credit Guild: Anyone can steal all distributed rewardsFront-running / MEV$0
- Ethereum Credit Guild: Incorrect calculations in `debtCeiling`Logic error$0
- Ethereum Credit Guild: `LendingTerm::debtCeiling()` can return wrong debt as the `min()` is evaluated incorrectlyLogic error$0
- Ethereum Credit Guild: Inability to withdraw funds for certain users due to `whenNotPaused` modifier in `RateLimitedMinter`Logic error$0
- Ethereum Credit Guild: `SurplusGuildMinter.getReward()` is susceptible to DoS due to unbounded loopGovernance attack$0
- Ethereum Credit Guild: No check for sequencer uptime can lead to dutch auctions failing or executing at bad pricesLogic error$0
- Ethereum Credit Guild: Over 90% of the Guild staked in a gauge can be unstaked, despite the gauge utilizing its full debt allocationInteger overflow/underflow$0
- Ethereum Credit Guild: `totalBorrowedCredit` can revert, breaking gauges.Integer overflow/underflow$0
- Ethereum Credit Guild: Replay attack to suddenly offboard the re-onboarded lending termSignature replay$0
- Ethereum Credit Guild: Re-triggering the `canOffboard[term]` flag to bypass the DAO vote of the lending term offboarding mechanismGovernance attack$0
- Ethereum Credit Guild: ProfitManager's `creditMultiplier` calculation does not count undistributed rewards; this can cause value losses to usersGovernance attack$0
- Ethereum Credit Guild: `RateLimitedMinter` isn't used by `SimplePSM` resulting in Governance attacksGovernance attack$0
- Ethereum Credit Guild: Users can deflate other markets Guild holders rewards by staking less priced tokenGovernance attack$0
- Ethereum Credit Guild: The `userGaugeProfitIndex` is not set correctly, allowing an attacker to receive rewards without waitingGovernance attack$0
- Ethereum Credit Guild: Repayers using EOA accounts can be affected if bad debt is generated when they are repaying loansLogic error$0