ByAUJay
DAO Governance Attack Scenarios, DeFi Protocol Consultancy, and Decentralized Proposals Design
Why this matters now
DAO treasuries and protocol controls are really catching the attention of those seeking to take advantage of vulnerabilities in token voting, proposal payloads, and cross-chain coordination issues. Recently, we've witnessed some pretty shocking events and upgrades--a prime example being the Tornado Cash governance takeover in 2023, which happened due to a malicious proposal. On top of that, big names like Uniswap are stepping up with delegate funding programs planned for 2024-2025, along with a multichain governance launch set for 2025. These developments are reshaping the threat landscape and altering our understanding of best practices.
In this post, we’re excited to share what we’ve been doing at 7Block Labs for our clients. We’ve developed clear attack scenarios, set up measurable controls, and created actionable proposal workflows for both on-chain and hybrid governance. If you want to dive deeper into the Tornado Cash incident, you can check it out here.
The 2026 attack surface: what’s actually being exploited
Here are a few governance-related ways we've spotted that can really shake things up for protocols. For each point, we'll highlight some clear signs to watch out for, along with some measures you can take to help steer clear of these challenges.
1) Flash‑loan voting power hijack
- Pattern: The key here is using borrowed voting power all at once to hit the required quorum or threshold, and then executing a sneaky move. A notorious example is the Beanstalk incident from April 17, 2022. In that case, an attacker took out a flash loan to gain a supermajority, pushed through BIP-18, and managed to drain about $182 million in funds. The aftermath? BEAN took a serious dive, losing around 86% of its value. (coindesk.com)
- What to watch:
- Keep your eyes peeled for any unusual, temporary spikes in IVotes snapshots for certain addresses just before a vote starts.
- Watch for massive token movements coming from lending protocols into governance staking contracts during the same block when the proposal is executed.
- Controls that work:
- A smart move would be to implement a minimum holding period before votes actually count (“vote power delay”). Pair your Governor with a Timelock so the execution doesn’t happen in the same block. You can utilize OpenZeppelin’s Governor + TimelockController with a delay of 2 to 7 days, and ensure your votingDelay is at least 1 day. (docs.openzeppelin.com)
2) Malicious proposal logic and “look‑alike” payloads
- Pattern: Keep an eye out for proposals that seem familiar or like they've been approved before but might have some sneaky code hidden within. A prime example of this occurred in May 2023, when a malicious proposal took control of Tornado Cash’s governance by secretly granting the attacker an astonishing 1.2 million votes, putting them in charge for a brief period. (theblock.co)
- What to watch:
- Pay attention to any proposals where the calldata ABIs don’t match up with the reference implementation or the payloads we've looked at before.
- Watch out for any “emergency” functions or upgradable router/proxy calls that could be hidden in those multi-call bundles.
- Effective Controls:
- Establish a rule that mandates pre-execution simulations (you could use something like Tenderly through Tally or Defender Admin simulate) and don’t let any proposals move forward unless they pass these simulations. It might also be a good idea to make the simulation proofs part of the proposal metadata. (docs.tally.xyz)
3) Bribery and vote‑buying markets
- Pattern: Vote markets, such as Hidden Hand and Votium, are really focused on making sure the right bribes are in play to sway those key emissions or treasury votes that pop up every two weeks. In ecosystems with ve-tokens, the outcomes often reflect the prices of these bribes; in short, governance power starts to feel a lot like a marketplace. (blog.aragon.org)
- What to watch:
- Stay tuned for fresh announcements about new bribe programs and watch for any last-minute changes in votes that might lean towards pools dishing out the most enticing offers.
- Keep an eye on those delegates whose voting habits closely mirror the leading bribe campaigns; they’re definitely the ones to keep tabs on.
- Controls that actually work:
- Consider adding anti-late-quorum and vote-extension modules to keep those major players from skewing the results at the last moment. It’s also worth looking into a super-quorum for treasury transfers. You can check it out here: (docs.openzeppelin.com)
- For votes that really matter, you might want to dive into privacy and receipt-freeness options (like MACI) to minimize the risk of vote-selling. More info can be found here: (maci.pse.dev)
4) Delegate concentration and apathy
- Pattern: It seems like a handful of delegates control most of the voting power, and honestly, turnout and the reasoning behind votes can be all over the place. In the Uniswap ecosystem, the biggest players carry the most weight; however, the DAO has been experimenting with some neat ideas like delegate rewards and “treasury delegation” programs to ramp up participation and make sure they reach quorum. (gov.uniswap.org)
- What to watch for:
- The Gini coefficient of delegated power, how the community reacts (or doesn’t) to major proposals, and the rates of abstention along with the quality of voting reasons.
- Effective controls:
- Setting up treasury delegation with performance-based incentives, making sure there are clear voting rationales, and automatically ending delegated tranches if participation starts to fade. (gov.uniswap.org)
5) Proposal spam and proposer frontrunning
- Pattern: It seems like some attackers or rivals are trying to get ahead by throwing together proposals just to grab the proposer rights and then back out, or they flood the system with low-quality proposals to tire out the reviewers. There was a 2023 CVE that was patched in OZ 4.9.1, which actually helps to block this frontrunning during proposal creation. You can check out the details here: (advisories.gitlab.com)
- What to watch:
- Be alert for competing proposals that look nearly identical showing up within just a few minutes, or if you notice repeated cancellations pop up.
- Controls that work:
- Make sure you're running Governor version ≥ v4.9.1; enable proposer-protection; require protected RPCs when you’re submitting proposals; and set up per-address proposal rate limits on the UI/workflow side. Need more info on this? Check out the docs: (docs.openzeppelin.com)
6) Cross‑chain governance desynchronization
- Pattern: There are times when votes or executions on different chains become totally out of sync. That's when attackers might swoop in and exploit timing issues or discrepancies in local token snapshots. With the rollout of multichain governance tools like Wormhole, Tally, and ScopeLift’s MultiGov, we've got to be cautious. Mismatched clocks and delayed VAAs can lead to some tricky situations if we’re not on our toes. (wormhole.com)
- What to keep an eye on:
- Keep an eye out for any mismatches in tallies between hubs and spokes, unexecuted payloads on spokes, and those pesky retries when dispatching across chains.
- Effective controls:
- Embrace a hub-and-spoke setup with one straightforward Governor as your go-to source of truth. Utilize Flexible Voting and establish clear timelock windows before you dive into any cross-chain dispatches. And hey, remember to stick to EIP-6372 “clock mode” across all your hubs and spokes. (wormhole.com)
7) “Guardian/committee capture” and emergency power abuse
- Pattern: When a pause guardian or security council has too much power, it can lead to situations where coercion or compromises occur. Take Compound's "Pause Guardian," for instance--it's designed to be pretty focused and limited in scope. On the flip side, Arbitrum’s Security Council sticks to strict guidelines and keeps it transparent by sharing reports after any emergency actions. (docs.compound.finance)
- What to watch:
- Keep an ear to the ground for any emergency actions that stray from what's documented. Also, watch out for any instances where privileged roles are being used outside of emergencies.
- Controls that work:
- Stick with a narrow set of pause semantics that only go one way; make sure there's a requirement for a supermajority multisig (like 9 out of 12), and push for public transparency reports. It’s also a good idea to follow the L2BEAT Stage 1/2 council guidance. (docs.arbitrum.foundation)
8) Off‑chain vote execution oracles
- Pattern: SafeSnap is a nifty tool that brings together Snapshot, Reality.eth, and Safe to seamlessly integrate off-chain votes into the on-chain world. But, it’s not all smooth sailing--there are a few risks to keep in mind, like questions that might get set up incorrectly, bonds that are a bit too low, or challenges that could fly under the radar. Want to dig a little deeper? You can do that here.
- What to watch for:
- Keep an eye out for Reality questions lacking enough cooldown or bond, missing arbitrators, and proposals that don’t line up with payload hashes.
- What works:
- Make sure to set those bonds high and allow plenty of time for cooldowns. Stay alert for Reality events, and always have a backup plan to veto or invalidate any faulty payloads. You can find more info here.
What “good” looks like in 2026: the hardened governance stack
You're welcome to use this reference architecture exactly as it is, or if you want, we can tweak it together!
A. Contract layer: OpenZeppelin Governor 5.x + Timelock
- Here’s a quick rundown of the modules we’ll automatically set up for you:
- GovernorVotes + IVotes token (ERC20Votes) with a steady clock mode that follows EIP‑6372. If you want to dive deeper into this, check it out here.
- GovernorTimelockControl or a Compound-style Timelock for when you need queued execution. We usually suggest a delay of about 2-7 days for regular actions and 7-14 days for upgrades or treasury transfers. You can find more info here.
- GovernorPreventLateQuorum automatically extends voting if quorum is reached late; it comes with a default extension of an extra 24 hours. Curious for more details? Learn more here.
- GovernorCountingFractional (Flexible Voting) is perfect for dealing with split votes (think custody/L2/pooled assets) and lets you use rolling partial votes with voteWeightCast. For all the specifics, check it out here.
- Superquorum is your go-to when you need to wrap things up early, but only if there’s overwhelming support; it’s especially handy for “critical tier” proposals. More info can be found here.
- When it comes to the bigger DeFi DAOs, here’s our go-to advice for default settings:
- votingDelay: 1-2 days
- votingPeriod: 5-7 days
- quorumFraction: 4-7% of the total supply (you might want to tweak this based on past turnout)
- proposalThreshold: 0.25-1.0% (or you could consider using a delegate list whitelist)
These recommendations are drawn from what we've observed in participation across L1 and L2, plus the various governance parameter ranges that are out there. For a closer look at this, check out the Aave L2 executor and its quorum/differential design here.
B. Emergency powers: narrow, auditable, and time‑boxed
- A system to think about:
- Imagine having a dedicated Security Council or Pause Guardian that focuses on one thing--like pausing activities in just one direction. We’d set a supermajority requirement of 75% or more from the signers. Plus, we’d ensure that transparency reports are released right after any actions are taken. It's also super important to clearly forbid any routine changes through emergency powers. This plan should line up with the guidance from L2BEAT’s Stage 1 and the Arbitrum constitution. (forum.l2beat.com)
C. Cross‑chain governance: don’t roll your own
- Set up a hub-and-spoke system (think MultiGov): you’ll have one main “hub” Governor that gathers all the votes and sends out the execution orders to the spokes. The spoke chains take care of the local voting and send those execution messages (VAAs) back to the hub. This arrangement keeps everything aligned and ensures you have a single source of truth, which helps avoid any messy or fragmented tallies. And remember, it’s important to implement ERC20Votes with CLOCK_MODE timestamps across all chains. For more info, check out wormhole.com.
D. Off‑chain to on‑chain bridges: SafeSnap with guardrails
- Requirements: To get started, you’ll need a Reality.eth arbitrator, a good bond, and a mandatory cooldown period of at least 24 hours. You also have to keep an eye on ProposalQuestionCreated and challenges, plus make sure you have an on-chain invalidation hook ready to catch any mismatched payloads. For more info, dive into the docs.snapshot.box.
Proposal design that resists attacks (and ships smoothly)
Think of proposals as product artifacts that bring along traceability, simulations, and attestations.
1) Encode context and traceability
- Get on board with the ERC‑4824 daoURI/contractsURI standard so your DAO’s contracts and governance documents can be easily found and checked out with various tools. Don’t forget to add a contractsURI that covers all your treasuries, governors, tokens, and bridges. You can dive deeper into it here.
- Just a quick reminder to throw in the IPFS CIDs for your specs, audits, and runbooks directly in the proposal description. And don’t forget to hash the final, user-friendly PDF/Markdown! Make sure to include that CID before you hash the Governor description.
2) Require simulations before on‑chain submission
- Take a look at Tally’s Tenderly simulations or OpenZeppelin Defender Admin to manage who can submit proposals for voting. If a simulation doesn’t go as planned, remember to block the publication. And hey, don’t forget to save that simulation result URI in the metadata! (docs.tally.xyz)
3) Attest the off‑chain review
- To get your sign-off using the Ethereum Attestation Service (EAS), you'll want to make sure:
- It’s been “Spec reviewed” by the leads of your working group.
- It’s gone through a “Security review” by both internal and external auditors.
- You’ve got the “Compliance OK” for different jurisdictions and treasury movements.
Make sure to include the EAS schema UIDs in the proposal metadata and index them in the daoURI. You can dive into all the details over at (attest.org).
4) Anti‑frontrun propose
- First things first, ensure you're using OpenZeppelin Governor version ≥4.9.1 (this version brings in that sweet proposer-protection!). If an upgrade isn't feasible for you just yet, don't sweat it; you can still submit using protected RPC endpoints and keep everything hush-hush until it's all good to go. For more info, check this out: (advisories.gitlab.com)
5) Quorum engineering, not hope
- When you're handling high-stakes proposals, think about using super-quorum or differential thresholds (like how Aave mixes quorum with a vote differential). This way, if there are a lot of “Against” votes, it becomes harder to push things through. Plus, it’s a good idea to plan votes on weekdays to avoid any quorum hiccups. Check out more info on aave.org.
6) Privacy when bribery risk is high
- For votes that are particularly vulnerable to bribery--like those on emissions--it might be a good idea to run a MACI round. This approach lets voters maintain their privacy when making choices. Once the voting's done, you can share the zk-verified tally and link it to execution through SafeSnap or an on-chain Governor adapter. Want to learn more? Take a look here: (maci.pse.dev)
Concrete, incident‑anchored examples
- Beanstalk (Apr 2022): A flash-loan governance exploit cost the protocol roughly $182M. If they had a Governor and Timelock with a voting delay in place, they could've dodged that same-block hijack. For more details, check it out here.
- Tornado Cash (May 2023): An attacker pulled a fast one by changing the logic to give themselves votes. If they had stricter simulation gates and hashed the payload in the metadata, they might've caught that issue early on. You can dive deeper into it here.
- Uniswap (2024-2025): The DAO launched a multi-cycle Delegate Reward/Treasury Delegation initiative aimed at tackling concentration and apathy. They made sure rewards were tied not just to participation but also to the quality behind the reasoning. If you’re operating at Uniswap's scale, think about adding some “participation floors” to your own delegation program. Learn more here.
- Arbitrum (2024): The Security Council jumped in with an emergency upgrade and released a transparency report. It might be wise to take a page from their book and implement a 9/12 voting threshold along with after-action reporting requirements. Get the full scoop here.
- Multichain governance (2025): Wormhole, Tally, and ScopeLift joined forces to launch MultiGov across Solana, Ethereum, and L2s. If your token or users are spread across different chains, skip the custom bridges--using this hub-and-spoke model is definitely the way to go. Read more about it here.
Monitoring and response: what to automate this week
- Vote Power Anomaly Alerts
- Get those alerts rolling when there's a net increase of ≥X% in delegated power to a single address within Y blocks during the votingDelay. And hey, make sure to factor in any lending pool sources you’re aware of!
- Proposal Diffing
- Check the calldata against a "known good" ABI map. If the selectors or parameter types don't line up with what's been audited, then just block the publication.
- Late-quorum triggers
- If we reach quorum during the last Z% of the voting period, let's automatically extend it using GovernorPreventLateQuorum. Don't forget to notify the delegates and set up an incident channel. (docs.openzeppelin.com)
- Off-chain oracle monitoring
- Stay on top of Reality.eth questions for any discrepancies and challenge periods. Don’t forget to pre-fund those challenge bonds! (docs.snapshot.box)
- Emergency drills
- Organize a tabletop exercise every quarter for the Security Council and Pause Guardian team. This is a great chance to practice pausing and unpausing procedures, along with the timelock queue and executing on a fork. And hey, remember to share a redacted summary of the runbook afterward!
Cross‑chain governance specifics (if you’re going multichain soon)
- Choose one main hub chain to house the primary Governor and the quorum rules. The other chains will act as spokes, just showing local voting and execution points.
- Ensure there’s a reliable “clock” (using timestamps instead of block numbers) for IVotes across all chains. This helps avoid any snapshot drift. The ERC‑6372 support in OZ Governor handles this alignment nicely. (docs.openzeppelin.com)
- Establish a base hub timelock window that’s long enough to gather and verify votes from the spokes, as well as to send out execution messages. No executions on spokes should take place until the hub has been finalized. (wormhole.com)
7Block Labs engagement blueprint (6-8 weeks)
- Week 1: Threat model and gap analysis
- Start by getting a solid understanding of your current setup--consider aspects like governor, timelock, delegates, pause/guardian roles, and any cross-chain activities. Once you’ve got that down, create a “must fix” list with clear targets to work on.
- Week 2-3: Upgrading Contracts and Setting Up Governance
- It’s time to level up to the OZ 5.x modules (think PreventLateQuorum and Fractional)! Don’t forget to add proposer-protection and tweak your quorum/thresholds to fit your turnout distribution. For all the juicy details, head over here: (docs.openzeppelin.com).
- Week 3-4: Strengthening the Proposal Pipeline
- We're going to amp things up by mixing in Tally simulations and Defender simulations. Don't forget to encode the daoURI/contractsURI, and let's also add EAS schemas for review attestations. You can find all the details you need at (docs.tally.xyz).
- Week 4-5: Emergency/Guardian Tune-Up
- Now's the moment to get those permissions in check; let’s make sure we’re working with a supermajority, whip up some templates for transparency reports, and sync up with what L2BEAT is looking for. You can find more details here: (forum.l2beat.com).
- Week 5-6: Optional Multichain Rollout
- Think about diving into MultiGov! It might be a good idea to kick things off with a pilot on just one spoke. Plus, make sure you’ve got reliable monitoring and incident response in place for your hub/spoke messaging. For more details, check it out here: (wormhole.com).
- Ongoing: Delegate programs and KPI dashboards
- Let’s set up those incentive cycles like Uniswap’s, with clear participation thresholds. And don’t forget to share those monthly governance KPIs too! You can dig deeper here: (gov.uniswap.org).
Fast checklist you can copy into your tracker
- Make sure you’re using Governor version 5.x or higher with: Timelock, PreventLateQuorum, CountingFractional, and Superquorum for that essential class.
- Set your voting parameters: Delay should be at least 1 day, the Period should be 5 days or longer, Quorum should sit between 4-7%, and the Proposal threshold should be somewhere between 0.25% and 1%.
- Don’t forget to enable proposer protection (OZ version 4.9.1 or later) and make sure to secure RPC for proposals (advisories.gitlab.com).
- Check that your daoURI and contractsURI are live, and ensure proposal descriptions include those IPFS CIDs (eips.ethereum.org).
- It’s super important to run some simulation checks (using Tally, Tenderly, or Defender) before you hit on-chain with any proposals (docs.tally.xyz).
- Link any EAS attestations for review, audit, or compliance in the metadata (attest.org).
- Tighten up your Security Council or Pause Guardian; create a straightforward report template, and make sure there’s a threshold of ≥ 75% (docs.compound.finance).
- Configure SafeSnap with an arbitrator, a substantial bond, a cooldown of at least 24 hours, and keep an eye on monitoring (docs.snapshot.box).
- If you’re working across multiple chains, use the MultiGov hub-and-spoke model; unify CLOCK_MODE, and enforce hub finalization before executing any spoke operations (wormhole.com).
- Set up a delegate incentive program with clear metrics for participation (like votes cast and the quality of rationale) (gov.uniswap.org).
Appendix: selected references for deeper dives
- Take a look at the post-mortems and media coverage surrounding the Beanstalk governance exploit. You can find all the details here: (certik.com)
- Make sure you don’t miss the deep dives into the Tornado Cash governance takeover. Get the scoop here: (theblock.co)
- Check out the OpenZeppelin Governor docs, where you can explore modules like Timelock, PreventLateQuorum, and Superquorum. Plus, there's a CVE fix for proposer frontrunning in version 4.9.1. All the info is right here: (docs.openzeppelin.com)
- Learn about Flexible Voting and how fractional vote counting works from ScopeLift. They’ve got some cool insights from the OZ audit and info on how zkSync is using it. Don’t miss out: (blog.openzeppelin.com)
- Check out the ERC‑4824 DAO metadata standard; you might also want to peek at the EAS documentation and explorer. It’s definitely worth a look: (eips.ethereum.org)
- Dive into SafeSnap/Reality and the Zodiac Reality module for some neat features that you might find helpful. More info here: (docs.snapshot.box)
- Get the latest updates on the L2BEAT Stages Framework for Security Councils, including details on Arbitrum’s Security Council constitution and reports. Check it out: (forum.l2beat.com)
- Discover the MultiGov architecture and see how it’s being implemented across Solana and EVM L2s. Get the details here: (wormhole.com)
Want to really nail down your governance stack? No worries--7Block Labs is here to help! Whether it’s modules, parameters, your proposal pipeline, or emergency roles, they’ve got you covered. They’ll run a two-week diagnostic and shoot you a clear upgrade plan, including code diffs and governance copy that you can jump straight into.
Like what you're reading? Let's build together.
Get a free 30-minute consultation with our engineering team.
Related Posts
ByAUJay
Making Sense of DAO Compliance: Fitting Governance into Legal Frameworks
**Summary:** DAOs can’t just sit back and hope for the best when it comes to their legal standing by 2026. Regulators are already paying attention, and the procurement scene is starting to get involved too. Check out this handy guide on how to set up on-chain governance using legal entities that check all the boxes, comply with EU/UK rules, and help you speed things up with ve.
ByAUJay
Where Can DAOs Oversee Treasury Funds While Staying Compliant? A Look at Custody and MPC Solutions
**Short summary:** By 2026, DAOs can hit that enterprise-level compliance sweet spot by bringing together qualified custodians, MPC policy engines, and on-chain controls. This guide lays out specific providers, regulatory hurdles in the U.S. and EU, and practical architectures you can deploy.
ByAUJay
How to Set Up a DAO, Build One, or Start a Business as a DAO: Your Legal and Tech Checklists
Short description: A practical, up-to-date guide that dives into three different paths for adopting DAOs--setting up an entity, building the tech, and running a business as a DAO. We’ll explore the ins and outs of jurisdictional differences, compliance challenges, and share some tried-and-true governance and security tips.

