Worked example · 2024-08
Penpie Finance yield-optimizer reward-accounting exploit — Ethereum + Arbitrum — 2024-09-03
Summary
Penpie Finance is a yield-optimizer protocol built on top of Pendle Finance, the EigenLayer-aligned yield-tokenisation protocol. Penpie aggregates user deposits and optimises yield across Pendle's yield-token (YT/PT) markets; in exchange, Penpie distributes its native PNP token as a reward incentive to depositors. The reward-distribution pipeline calculates per-user PNP reward claims based on a reward-rate parameter that, by design, depends on the yield performance of the underlying Pendle markets Penpie integrates.
On 2024-09-03 an attacker exploited Penpie's Pendle-market registration logic to register a fake market contract. The fake market was accepted into Penpie's reward-distribution pipeline without sufficient validation; the market contract returned an attacker-controlled reward-rate value that massively inflated the PNP claims the attacker was entitled to. The attacker then claimed the inflated PNP rewards against Penpie's treasury and swapped the claimed PNP for ETH and other liquid assets via DEX venues.
The proximate cause — per SlowMist, BlockSec, and other post-incident analyses — was the missing validation step in Penpie's market-registration handler. Penpie accepted a new market registration based solely on the market contract's conformance to a basic interface check; it did not independently verify that the market was a legitimate Pendle-deployed market, that its reward-rate output was consistent with Pendle's own oracle-derived yield rates, or that the registered market had passed any protocol-side governance review. The attacker exploited this gap by deploying a custom contract that passed the interface check but returned an arbitrarily high reward rate.
For OAK's purposes the case sits at the intersection of T9.001 (reward-rate manipulation as a price-curve subclass) and T9.004 (missing validation on the market-registration surface). The novel OAK contribution is documenting the yield-optimizer consumer-side validation failure as a distinct sub-pattern under T9.001 — distinct from the thin-input oracle manipulation subclass (UwU Lend, Inverse Finance) and the PMM-curve manipulation subclass (WOOFi).
Timeline (UTC)
| When | Event | OAK ref |
|---|---|---|
| Pre-event | Penpie Finance operates Pendle-integrated yield-optimizer on Ethereum and Arbitrum; reward-distribution pipeline accepts Pendle-market registrations with interface-level validation | T9.004 surface (latent) |
| Pre-event | Attacker identifies missing validation on market-registration handler; develops fake Pendle-market contract returning attacker-controlled reward-rate value | (off-OAK pre-event preparation) |
| 2024-09-03 ~18:23 UTC | Attacker registers fake Pendle market on Ethereum deployment; Penpie's handler accepts the registration; attacker triggers inflated reward-claim against Penpie treasury | T9.001 + T9.004 extraction (first Ethereum tx) |
| 2024-09-03 ~18:23–18:42 UTC | Attacker executes two additional extraction transactions on Ethereum, cumulative drain reaches ~$26.7M (~11,113.6 ETH-equivalent) | T9.001 extraction continued |
| 2024-09-03 ~18:45 UTC | Pendle Finance detects anomalous activity linked to Penpie integration; pauses Pendle operations on Ethereum | (upstream protocol response) |
| 2024-09-03 ~19:14 UTC | Before Penpie's Arbitrum deployment is paused, attacker executes follow-on extraction on Arbitrum: ~$621K gUSDC drained via the same reward-rate manipulation | T9.001 cross-chain follow-on |
| 2024-09-03 (within hours) | Penpie pauses all deployments; publishes incident acknowledgement | (operator response) |
| 2024-09-06 | Penpie publicly offers 10% white-hat bounty (~$2.7M); attacker does not respond | (negotiation attempt, no engagement) |
| 2024-09-03 onward | Attacker launches proceeds: ~5,600 ETH through Tornado Cash in first ~12 hours; remainder in subsequent batches over the following week | T7.001 (Mixer-Routed Hop) |
| Continuing | No material recovery achieved; Penpie winds down / restructures affected reward-distribution pipelines | (recovery state — nil) |
What defenders observed
- Market-registration is a distinct access-control surface for yield-optimizer protocols, not a routine integrator task. Penpie treated Pendle-market registration as an integrator-interface operation with basic interface validation; the incident demonstrates that market-registration is a security-critical surface that determines which external contracts' outputs will influence the protocol's reward-distribution accounting. Defender practice for yield-optimizer protocols should treat market-registration as a governance-gated surface — new markets should be registered only after explicit governance review, not via permissionless interface-conformance checks.
- Consumer-side reward-rate validation is the structural control Penpie was missing. The fundamental defender mitigation is for the yield-optimizer's reward-distribution handler to independently validate the reward-rate parameter provided by the integrated market against the upstream protocol's own oracle output. For a Pendle-integrated yield optimizer, this means cross-checking the registered market's claimed reward rate against Pendle's own on-chain yield-rate oracle before accepting it as input to PNP reward-claim calculations.
- Cross-chain pause synchronisation is a distributed-systems problem that the Penpie–Pendle surface did not solve. Pendle paused on Ethereum at 18:45 UTC; the attacker executed a follow-on drain on Arbitrum at 19:14 UTC, demonstrating a 29-minute cross-chain pause gap. The defender practice lesson is that cross-chain pause operations must be treated as atomic across all deployments — a pause on one chain without a corresponding pause on the other chains leaves the unpaused deployments as a continuing extraction surface.
- Reward-rate manipulation is a distinct subclass of T9.001, structurally different from spot-price manipulation. Unlike UwU Lend 2024 (thin-input Sushiswap pair), Inverse Finance 2022 (Sushiswap INV/WETH pair), or WOOFi 2024 (PMM-curve parameter manipulation), the Penpie case involves manipulating a reward-rate rather than a spot price. The mechanism is different — registering a fake market rather than trading against a thin pool — but the OAK classification converges on T9.001 because both involve manipulating a numeric feed that the consumer protocol treats as an oracle input for accounting purposes.
What this example tells contributors writing future Technique pages
- T9.001 (Oracle / Price-Curve Manipulation) should have a reward-rate subclass distinct from the spot-price subclasses. The spot-price subclasses (thin-input AMM manipulation, PMM-curve manipulation, liquidity-pool spot-price as oracle) are well-documented in the OAK corpus. Penpie 2024 is the canonical worked example for the reward-rate subclass — the reward-rate is a different type of oracle feed, and the manipulation mechanism (fake market registration) is structurally distinct, but the consumer-side failure pattern (trusting a manipulable numeric feed as authoritative) is the same.
- T9.004 is the structural precondition for the T9.001 extraction in this case. The missing validation on market registration is the T9.004 surface; the reward-rate manipulation that inflated the PNP claims is downstream of it. Worked examples for T9.004 should include the Penpie case alongside the canonical cases (Compound vote-takeover, Onyx governance-misconfiguration, etc.) as evidence that access-control-on-market-registration is a distinct T9.004 sub-surface.
- Cross-chain pause synchronisation is a cross-cutting Mitigations-layer entry that Penpie provides a clean 2024 worked example for. The 29-minute gap between the Ethereum pause and the Arbitrum follow-on drain is the concrete evidence. The Mitigations layer should include cross-chain pause coordination as a first-class defensive-design requirement for multi-chain deployments.
Public references
[penpiepostmortem2024]— Penpie Finance official post-incident statement covering the September 2024 exploit, the cross-chain drain pattern, and the 10% white-hat bounty offer.[blocksecpenpie2024]— BlockSec forensic transaction-trace analysis of the Penpie exploit, including the fake-market registration and reward-rate manipulation sequence.[slowmistpenpie2024]— SlowMist incident analysis covering the pre-event funding, the on-chain attack sequence, and the Tornado Cash laundering pattern.[peckshieldpenpie2024]— PeckShield headline figures and on-chain analytics for the Penpie September 2024 drain.[rektrpenpie2024]— Rekt News public-facing summary of the Penpie yield-optimizer exploit.[cointelegraphpenpie2024]— CoinTelegraph / industry press coverage of the Penpie $27M exploit and the cross-chain follow-on.