Hook: The 2,388 DSNs That Should Terrify Every DAO
At DEF CON 34, Tenet Security dropped a quiet bomb: 2,388 public Sentry DSNs, 71 in the top 1 million websites, and an estimated 27% of Fortune 1000 companies exposed through Cloudflare’s MCP integration. The attack vector, dubbed "Agentjacking," achieved an 85% success rate in controlled tests. A single HTTP POST to a publicly scannable S entry endpoint can turn an AI coding agent—Claude Code, Cursor, or any MCP-connected tool—into a credential-harvesting puppet. AWS keys, GitHub OAuth tokens, npm registry credentials, all exported to an attacker-controlled server. The attack doesn’t exploit a zero-day in the model. It exploits a design gap: the trust boundary between data and instruction.
For a community that preaches "trustless systems," this is a deeply uncomfortable mirror. The very same flaw—blind trust in external data—exists in our DAO governance models, our stablecoin oracles, and our NFT metadata pipelines. The AI agent crisis is a crypto governance crisis in disguise. And if we don’t learn from it, the next "agentjacking" will hit our treasuries, not just our developer laptops.
Context: The Architecture of Trust Misplaced
To understand the vulnerability, you need to understand the Model Context Protocol (MCP). MCP is Anthropic’s open standard for connecting AI agents to external tools and data sources. Think of it as a universal API for agent brains. Sentry, the error-monitoring platform, exposes an MCP server that allows agents to query crashes, issues, and stack traces. Developers using Claude Code or Cursor can ask "Why is this bug happening?" and the agent fetches context from Sentry via MCP.

The problem is that Sentry’s ingestion endpoint—the DSN—is unauthenticated for POST requests. Anyone with a valid DSN can push arbitrary error events into a project. Tenet demonstrated that an attacker can craft a malicious error event containing a markdown payload that looks like a legitimate fix suggestion. When the developer later asks the agent to debug the same Sentry issue, the agent reads the attacker’s markdown, interprets it as a command, and executes the recommended "fix"—which is actually an npm install of a malicious package. The package then exfiltrates credentials.
This is a textbook indirect prompt injection, but with a twist: it weaponizes the very tool developers trust to help them. The architecture has no semantic layer to distinguish "data" from "instruction." The MCP data source is treated as authoritative, and the agent has no mechanism to verify the provenance or intent of the content.
Core: The DAO Governance Parallel
Now, replace "Sentry" with "a DAO’s on-chain proposal." Replace "MCP" with "the governance frontend." The attack chain is eerily similar:
- A public-facing data source (e.g., a Snapshot space, a Safe multisig transaction data, a Discord bot output) is accessible to everyone.
- An attacker injects malicious data—a forged proposal, a manipulated vote tally, a fake contract address—that appears legitimate to the user interface.
- A DAO member or a smart contract (acting as an agent) reads that data and executes an action based on it, without verifying the source’s integrity.
In 2020, I co-designed the governance structure for UnityDAO, a $5 million treasury managed by 3,000 members. We implemented quadratic voting and held 42 monthly community calls to build social cohesion. Yet even then, we had no systematic way to verify that the data feeding our voting interface was free from injection. We relied on reputation and manual review. Today, with AI agents increasingly used to automate DAO operations—voting, treasury management, bounty distribution—the attack surface explodes.
Consider: a DAO uses an AI agent to summarize proposals and recommend votes. The agent pulls data from a public forum or a GitHub repository. An attacker posts a cleverly crafted comment that includes a hidden prompt injection. The agent reads it, and the next time a member asks "Should I vote yes on proposal 54?" the agent responds with a fabricated analysis that favors the attacker’s interest. The member votes accordingly. The treasury moves.
That’s not a hypothetical. That’s the logical extension of the Agentjacking attack. The MCP protocol doesn’t care if the data source is a crash report or a governance forum. The architecture is the same.
The Contrarian Angle: Code Is Not the Cure
The natural reaction among crypto builders is to scream "Sovereignty! Self-custody! On-chain verification!" But the Agentjacking case reveals a harsh truth: even with the most transparent blockchain, the human-in-the-loop remains the weakest link. Sentry could have implemented signed envelopes or IP whitelists for DSN ingestion. They didn’t, because they judged the cost too high. Similarly, many DAOs rely on centralized off-chain data sources (Discord bots, Twitter feeds, Snapshot UI) without any cryptographic verification of the data’s integrity.
The contrarian insight is that the solution is not purely technical. It’s governance. The attack succeeded because of a governance failure: no accountability for the data source, no audit trail for the agent’s decision, no community mechanism to review and override the agent’s actions. In the crypto world, we worship "code is law," but we forget that code is only as good as the data it ingests.
I experienced this firsthand during the 2022 bear market. When FTX collapsed, many of the DAOs I advised were paralyzed by conflicting information from unverified sources. We had to build a "Rebuild Chicago" peer-support network precisely because the on-chain tools lacked the social layer to handle misinformation. The human element is the ultimate hedge.
Takeaway: A Call for Decentralized MCP Security
The Agentjacking event is not just a security flaw of Sentry or MCP. It is a systemic warning for the entire decentralized ecosystem. As AI agents become the primary interface for interacting with crypto—trading, governance, development—we must re-architect the trust model. We need:
- Decentralized data provenance: Every piece of data consumed by an agent should carry a verifiable signature and a reputation score. This is a natural fit for blockchain-based attestations.
- Human-in-the-loop governance: Before an agent executes a critical action (e.g., transferring treasury funds), it should require a multi-signature approval from a rotating set of community members. My UnityDAO experience showed that 42 monthly calls built trust, but we also need automated failsafes.
- MCP security extensions: The protocol should include a mandatory "content trust" layer, where data sources declare their intent and agents verify that the data is not an instruction.
I am calling for a "Decentralized MCP Security Protocol" (DMCP) that combines on-chain attestation with off-chain reputation. As a DAO Governance Architect, I will be sponsoring a proposal to the most prominent DAO tooling communities to adopt this standard. The cost of inaction is not just a stolen credential. It’s the erosion of the very trust that makes decentralized systems possible.
Code without compassion is cold. And code without a governance layer is dangerous. The AI agents are coming. Let’s make sure they work for the community, not against it.