CVE-2026-55658: Gardens v2: StreamingEscrow buffer drains to the proposal beneficiary on cancel via the permissionless claim()
Gardens v2 is a modular governance framework that enables communities to create and manage multiple governance pools with customizable parameters and voting mechanisms. In 3e595f3 and prior, when a streaming proposal is funded, the cluster of streaming contracts moves real pool funds into the proposal's StreamingEscrow to back the Superfluid constant flow agreement (the CFA deposit, plus a 0.5 percent margin). cancelProposal then zeroes the escrow's GDA member units but never reclaims that parked balance, and the permissionless claim() forwards the escrow's entire balance, including the pool funded buffer, to the beneficiary. The beneficiary is chosen by the proposal submitter and defaults to the submitter. The only path that returns escrow funds to the pool is drainToStrategy, which is onlyStrategy and is reached solely from the dispute reject ruling, never from cancel or natural completion. At time of publication, there are no publicly known patches.
Affected Software
Event History
Frequently Asked Questions
Who can exploit this issue?
A beneficiary of a funded streaming proposal can receive the escrowed pool-funded buffer after cancellation. The beneficiary is selected by the proposal submitter and defaults to the submitter, while claim() itself is permissionless.
What conditions are required for funds to be diverted?
A streaming proposal must have been funded so that pool funds were moved into its StreamingEscrow, and the proposal must then be canceled. After cancellation, anyone can call claim(), which forwards the escrow balance to the proposal beneficiary.
Are funds returned to the pool when a streaming proposal is canceled or completes naturally?
No. cancelProposal does not reclaim the parked escrow balance, and natural completion is not described as returning it either. The stated return path is drainToStrategy, which is only reached through a dispute rejection ruling.
What mitigation is available if patching is not possible?
The provided information identifies no public patch. Practitioners should avoid or tightly control funding and cancellation of streaming proposals, particularly where beneficiaries are untrusted, because canceled funded proposals can leave the buffer claimable by their beneficiary.
Which versions are affected?
The issue affects commit 3e595f3 and prior. No publicly known patch was available at the time of publication.