Incidents

MakerDAO legacy keeper exploit: missing auth check

Illustration: Missing access control

Published Oct 13, 2026

Project
Third-party MakerDAO keeper
Chain
Ethereum
Date
Oct 6, 2026
Loss
$542.98K
Class
Missing access control
Basis
Project post-mortem or audit firm analysis

In March 2020 a third-party keeper won four MakerDAO collateral auctions, 50 ETH each, and never settled them. The 200 ETH sat in the auction contract for six years, claimable by the keeper.

The keeper's own contract protected its privileged functions with ds-auth, except one: the function with selector 0x8804d1de. It accepted any address as an adapter, called Vat.hope to delegate the keeper's rights to it, then called join(), and never revoked the delegation with nope.

On October 6, 2026 an attacker passed in their own adapter. With the keeper's delegation it called deal() on the ETH-A Flipper for auctions 1457–1460, moved the 200 ETH to itself with flux(), and exited through GemJoin as 200 WETH, about $543K at the time. Maker's core contracts behaved as designed; the hole was entirely in the keeper.

The keeper's implementation is not verified on-chain, so the analysis rests on decompiled bytecode. The delegation to the malicious adapter is still in place.

How to protect your protocol

Sources

How this was prepared: compiled from the sources above with the help of automated tools, then reviewed by the Foothold security team before publication.

Give Atlant a task Could the same thing happen in your code? Get it checked →