Build Finance Hostile Governance Takeover (2022-02-14)

  • Name: Build Finance hostile governance takeover
  • Date: 2022-02-14
  • Protocol: Build Finance DAO
  • Chain: Ethereum
  • Category: governance capture / low-turnout governance takeover / treasury seizure / token-mint abuse
  • Loss: contemporaneous reporting framed the treasury loss at roughly $470k to $500k, while Beosin’s fuller onchain tally put the extracted value closer to $1.12M after BUILD mint-and-dump plus treasury-token disposals
  • Summary: This was a governance capture through neglect and turnout failure, not through flash loans. Build Finance is the clean low-turnout / broken-alerting anchor inside the broader governance-decay family: the protocol had gone quiet enough that a Discord proposal bot was effectively the main alerting layer for live governance, and once that bot missed the second proposal the remaining constitutional surface was barely defended at all. After an initial self-serving proposal was noticed and voted down, the attacker moved BUILD into a fresh wallet, submitted a second proposal, and benefited when the proposal bot did not alert the community. With only about 5,000 BUILD voting For and none voting Against, the attacker gained control over the BUILD token’s governance path, transferred mint authority to an attacker-controlled address, minted BUILD at billion-token scale, dumped it into onchain liquidity, and also emptied treasury assets such as METRIC, DAI, USDC, and NCR.
  • Trigger / entry point:
    • Build Finance governance appears to have had a very low effective participation threshold: Speculative Branches notes about 130,000 BUILD initially outstanding, yet only roughly 5,000 BUILD decided the successful control-transfer vote.
    • Proposal visibility had become operationally dependent on offchain Discord notifications rather than on active routine governance monitoring by tokenholders.
    • The attacker could re-submit a self-serving governance action from a new wallet after the first attempt was noticed and opposed.
    • The BUILD token contract’s governance role was powerful enough to transfer mint authority and turn vote capture directly into printable token supply.
  • Root cause:
    • Build Finance treated a thin, low-attention tokenholder vote as legitimate constitutional authority over the BUILD token contract, treasury, and minting path.
    • In practice, governance security had collapsed into an offchain monitoring assumption: if the Discord proposal bot failed, nobody meaningfully stood between a hostile proposal and root protocol control.
    • Proposal payload authority was too broad for such a thinly defended governance surface. Once the attacker won the vote, no second smart-contract bug was needed.
    • The DAO’s real control surface had drifted away from tokenholders actively govern toward who notices in time, which is not a durable security model.
  • Exploit path:
    1. On 2022-02-09, an attacker using the name suho.eth submitted a proposal that would effectively let them seize control of Build Finance governance and minting. Business Insider and Speculative Branches both describe this first attempt as being noticed in time and voted down after moderators warned the community.
    2. The attacker then moved BUILD into a fresh wallet 0xd6dbed6297b539a11f1aab7907e7df7d9ffeda7e and submitted a new proposal. Business Insider and Vice both describe the fresh-wallet replay as important because it escaped the earlier social attention cycle.
    3. The second proposal passed after the Discord proposal bot failed to alert the community. Speculative Branches records the decisive vote as about 5,000 BUILD in favor and 0 against.
    4. Beosin’s reconstruction shows the BUILD token’s original governance had already been routed from creator 0x2Cb037BD6B7Fbd78f04756C99B7996F430c58172 into timelock 0x38bce4b45f3d0d138927ab221560dac926999ba6; the passed proposal then used that governance path to transfer BUILD token control onward to attacker address 0xdcc8A38A3A1F4EF4d0b4984dCBB31627D0952c28.
    5. The attacker-controlled governance address then called the BUILD token’s mint path. Beosin describes more than 1B BUILD minted across three transactions; Vice’s contemporaneous report also noted an earlier 1,107,600 BUILD mint before later billion-scale issuance.
    6. The freshly minted BUILD was sold through Uniswap V2 and Balancer, draining the protocol’s remaining external liquidity rather than merely diluting offchain holders.
    7. The attacker also seized treasury assets including roughly 130,000 METRIC plus stablecoins and other tokens. Beosin’s fuller tally lists profits including 162 ETH, 20,014 USDC, 481,405 DAI, and 75,719 NCR.
    8. Vice reported that the drain address later sent at least 163 ETH to Tornado Cash, closing the loop from governance capture to mixer-bound cash-out.
  • What the attacker needed to be true:
    • BUILD voting power had to be concentrated enough that only a few thousand tokens could decide a proposal.
    • Community attention had to be weak enough that a broken notification bot created an exploitable silence window.
    • The governance process had to let a successful proposal directly redirect BUILD token governance rather than only change narrow operational parameters.
    • Onchain liquidity in BUILD pairs and treasury-held assets had to be deep enough for the attacker to realize value after capture.
    • There had to be no guardian, veto, or other break-glass path strong enough to stop execution once the proposal passed.
  • Technical anatomy worth remembering:
    • This is a useful governance-capture cousin because the attacker did not rent votes and did not smuggle metamorphic payload code. They simply exploited low turnout, low attention, and broad proposal authority.
    • Within the governance-capture family, Build is the clean low-turnout / broken-alerting anchor: no borrowed-vote timing trick, no payload mutability bug, and no hidden signer compromise were required once one silent proposal cycle could still move root authority.
    • The real exploit surface was partly offchain: the Discord proposal bot was functionally part of Build Finance’s security model.
    • Once BUILD token governance moved to the attacker, the rest of the incident was just ordinary use of privileged functions: mint, sell, and empty treasury. Governance capture itself was the decisive bug.
    • The case preserves a sharp who controls the DAO? lesson. Social accounts, brand, and founder legitimacy all became irrelevant once the timelock honored the passed vote and reassigned contract governance.
  • Representative transactions and addresses:
    • BUILD token: 0x6e36556B3ee5Aa28Def2a8EC3DAe30eC2B208739
    • METRIC token: 0xefc1c73a3d8728dc4cf2a18ac5705fe93e5914ac
    • Original BUILD governance / creator address highlighted by Beosin: 0x2Cb037BD6B7Fbd78f04756C99B7996F430c58172
    • Timelock highlighted by Beosin: 0x38bce4b45f3d0d138927ab221560dac926999ba6
    • Proposal wallet identified in reporting: 0xd6dbed6297b539a11f1aab7907e7df7d9ffeda7e
    • Attacker governance recipient / drainer: 0xdcc8A38A3A1F4EF4d0b4984dCBB31627D0952c28
    • Historical governance-transfer transaction highlighted by Beosin: 0xe3525247cea81ae98098817bc6bf6f6a16842b68544f1430926a363e790d33f2
  • Response / mitigation:
    • Build Finance publicly warned users not to buy BUILD after the takeover because the attacker controlled the token contract, governance contract, minting keys, and treasury.
    • The team stated that the treasury loss was total and irrecoverable, and that direct outreach to the attacker produced no reparations.
    • Build Finance also tried to isolate Metric from the captured BUILD governance surface by emphasizing that Metric’s core protocol could continue independently even though BUILD DAO had dumped treasury-held METRIC.
    • In practice, the incident reads less like a recoverable smart-contract exploit and more like terminal constitutional capture of an already low-attention DAO.

Pattern tags

  • governance-capture
  • governance-decay-remnant-authority-capture
  • backstop-failure-governance-capture
  • deprecation-without-deauthorization
  • The decisive trick was not borrowed capital or payload smuggling. It was that a sleepy electorate still retained full constitutional power over BUILD minting and treasury movement, so one unnoticed proposal was already equivalent to handing over the root key.
  • Build’s effective governance threshold had decayed far below the authority still controlled by governance. Speculative Branches’ 130,000 BUILD versus roughly 5,000 BUILD deciding the successful takeover vote preserves the sharper point that headline supply and attentive constitutional weight had split badly.
  • The Discord proposal bot was part of the real security boundary. Once proposal discovery depended on one offchain notification path, alerting failure became governance-capture surface rather than mere community inconvenience.
  • The passed proposal did not just tweak parameters. It moved the BUILD token’s governance path into attacker hands, after which minting and treasury extraction were ordinary privileged calls rather than second-stage exploits.

Why the exploit worked

  • Build still treated a tiny, low-attention electorate as fully legitimate constitutional authority over the BUILD token contract, treasury, and mint path. Once only a few thousand BUILD could decide root control, the DAO had already become spot-buyable enough for a hostile vote to matter.
  • Socially, the protocol was defended by monitoring rather than by constitutional hardening. The first hostile proposal failed because the community noticed it; the second succeeded because the proposal bot missed it. That means the real backstop was already someone sees the alert in time, not a durable governance-defense layer.
  • The governance surface controlled powers that were too broad for such a weak electorate. A successful vote could transfer token governance, unlock mint authority, and indirectly cash out treasury value without any narrower secondary review path.
  • Build also lacked a credible post-passage interrupt path. Once the second proposal cleared, there was no stronger guardian, veto, or residual authority able to stop execution before the attacker converted governance success into mint-and-dump plus treasury seizure.
  • The constitutional surface had effectively outlived the community attention defending it. Build is therefore a cleaner remnant authority case than many flash-loan governance incidents: the exploit worked because stale governance still owned live assets after the social layer around it had already decayed.

Detection and audit pivots

  • Measure governance safety against attentive float, not total supply. If ~5,000 BUILD can decide root authority while ~130,000 BUILD headline supply exists, the useful number is the small one.
  • Ask whether one failed monitoring cycle is enough to make capture plausible. If a broken Discord bot or silent delegate chat can turn an attacker proposal into uncontested constitutional truth, offchain alerting is part of the root trust boundary.
  • Inventory what dormant or low-activity governors can still do. BUILD governance still reached token-governance transfer, mint authority, and treasury value, so the right audit question was never only is the DAO active? but what root powers survive if it is not?
  • Review whether governance powers are tiered or all ride on one thin vote path. Root actions such as token-governance reassignment, treasury seizure, and fresh mint authority should stand out immediately as constitutional-grade powers.
  • Compare attacker-to-execution time with defender-to-intervention time. Build’s first and second proposal sequence is a clean warning that the community might notice is not a backstop unless detection, coordination, and intervention are all faster than the hostile path.
  • Track concentration and market-buyability of voting weight together. A thin, neglected governance token with low participation can become economically cheaper to capture than the treasury or mint rights it protects.

Failure-prevention checklist

  • Recompute quorum, proposal thresholds, and passage thresholds against real attentive float, and treat severe turnout decay as a constitutional defect rather than mere community apathy.
  • Separate root powers from routine governance. Token-governance transfer, mint authority, treasury seizure, and equivalent constitutional actions should require a stronger lane than ordinary parameter changes.
  • Put a real backstop around root actions: execution delay, scoped veto, guardian cancellation, or equivalent interrupt paths sized to realistic human coordination time.
  • Treat proposal-discovery infrastructure as security-critical. Run multiple alerting paths, queue watchers, and human escalation owners instead of depending on one bot or one chat surface.
  • Decommission, quarantine, or drastically narrow governors on sleepy deployments before social abandonment turns them into cheap takeover paths.
  • Keep treasury and governance-token admin surfaces small enough that one unnoticed vote cannot immediately become billion-scale mint authority plus liquid treasury extraction.
  • Drill hostile-governance response: who is paged, who can communicate risk, who can intervene, and what exact root actions can still be stopped after a proposal passes.
  • Review whether the protocol can survive one unnoticed proposal cycle. If the answer is no, the constitution is relying on luck, not governance design.

Audit prompts

  • How many tokens would it take to pass a hostile proposal given actual recent turnout, not nominal supply?
  • If the main proposal bot, delegate alert feed, or Discord workflow fails for 24 hours, what concrete governance-defense path still remains?
  • Which governance-controlled actions can directly transfer token governance, mint new supply, move treasury assets, or otherwise seize root authority in one vote?
  • Does the protocol have any credible interrupt path after a proposal passes, or is the only realistic defense someone notices and counter-mobilizes first?
  • Which deployments, timelocks, or governors are socially sleepy but still economically live?
  • Has governance security been reviewed as a lifecycle problem: when should a low-attention DAO lose powers, shrink powers, or be decommissioned entirely?
  • Could an attacker who fails once simply re-submit from a fresh wallet and rely on alert fatigue or tooling failure the second time?
  • Is the cost of acquiring decisive voting power materially lower than the value protected behind governance-controlled minting, treasury, or token-admin rights?

Lessons that should already be standard

  • A sleepy electorate with live mint and treasury authority is still a live root key.
  • Low turnout is not just a participation problem when governance controls constitutional powers; it is a security problem.
  • Notification tooling can become part of the constitution whether the team means it to or not. If the bot catches it is the main defense, the bot is already security-critical infrastructure.
  • Governance capture does not need flash loans to be catastrophic. Thin float, weak monitoring, and broad proposal authority are enough.
  • Deprecated or half-abandoned governance should be deauthorized before it is exploited. Still onchain is not the same thing as still safely governed.
  • Root powers should not sit behind the same cheap vote path as ordinary governance housekeeping.
  • The right question for neglected DAOs is not can tokenholders still vote? but who can seize the constitution if tokenholders stop paying attention?
  • A protocol that survives only when the community notices every hostile proposal on time has not actually built a constitutional backstop.

Why this incident matters

  • It broadens the governance-capture branch beyond flash-loan supermajorities and proposal-code smuggling into the quieter nobody was watching and the vote still had root power cousin.
  • It is the clean preserved low-turnout / broken-alerting exemplar inside remnant-authority capture, where the social defense had already decayed below the constitutional power still left onchain.
  • It shows that governance alerting infrastructure can become part of the real trust boundary. If the social/process layer is the only thing preventing malicious proposals, then the protocol is only as safe as that process.
  • It is also a useful retirement-boundary case: once governance security had degraded into someone notices the Discord bot failed, the safer move was no longer hope the old constitution still works but narrow or extinguish the root authority that constitution still controlled.
  • It is a good preserved case for DAOs whose treasury and token contracts remain controlled by onchain governance long after active participation has decayed.
  • It also sits cleanly inside the broader deprecation without deauthorization family: once the live governance constitution had decayed into a sleepy social shell, still onchain no longer meant still safely authorized.

Internal linkages

Control surface