On September 16, 2026, the Prime protocol on HyperEVM suffered an oracle manipulation attack that caused approximately $33.4K in losses.
The incident involved the integration of Chainlink Data Streams through a custom oracle middleware contract. The vulnerability was not related to Chainlink signature verification itself, but rather the missing validation logic after receiving verified oracle reports.
The middleware accepted valid signed reports but failed to verify whether the incoming price data was newer than the existing stored value. This allowed an attacker to update the oracle price with outdated but valid data and manipulate collateral valuation inside the lending system.
The vulnerable component was the DataStreamConsumer contract.
The contract exposed the following function:
function verifyReport(bytes memory unverifiedReport) external
The function was permissionless, meaning anyone could submit a Chainlink Data Streams report.
After the report was verified by Chainlink’s VerifierProxy, the contract directly updated the stored oracle price:
data.answer = report.price;
However, there was no check to confirm:
A secure oracle integration should not only verify signatures. It should also validate the lifecycle of oracle data.
For example:
require(
report.observationsTimestamp > lastUpdatedTimestamp,
"stale oracle report"
);
This prevents old reports from replacing newer prices.
In the Prime incident, the contract trusted every verified report:
User submits report
|
VerifierProxy validates signature
|
Middleware stores price
|
No freshness check
|
Old price can overwrite current price
The signature proved that the report came from an authorized oracle source. However, it did not prove that the report was suitable for updating the current protocol state.
The attacker used the vulnerable oracle update mechanism to manipulate the PRFI price.
The reported oracle price was increased to approximately:
PRFI oracle price: $0.11
Market price: ~$0.0021
The manipulated price was around 52 times higher than the real market value.
The attacker then used this inflated collateral valuation to borrow assets from the lending protocol.
The attack steps were:
The attacker used a Morpho flash loan to obtain temporary liquidity. Because the WHYPE/PRFI pool had limited liquidity, the attacker was able to acquire PRFI tokens at a relatively low market cost.
The attacker deposited PRFI into the lending system. The lending protocol relied on the manipulated oracle price. Instead of valuing PRFI at the real market price, the system calculated collateral value using the inflated oracle value.
The attacker borrowed approximately:
425.5 WHYPE
Worth around:
$33.4K
The borrowed amount exceeded the true economic value of the collateral.
Many DeFi developers assume:
“If the oracle provider signs the data, the integration is safe.”
This assumption is incomplete.
Oracle security requires multiple layers:
Oracle Provider Security
+
Report Validation
+
Timestamp Verification
+
Replay Protection
+
Economic Risk Controls
A failure in any one of these layers can create a critical vulnerability.
Protocols should ensure every oracle update moves forward.
Example:
require(
newTimestamp > previousTimestamp,
"invalid timestamp"
);
Oracle data should have a maximum acceptable age.
Example:
require(
block.timestamp - updatedAt < MAX_DELAY,
"stale price"
);
Oracle adapters often look simple, but they directly control:
A small mistake in middleware logic can become a protocol-wide financial risk.
At PandaSecurity, we believe real Web3 security requires looking beyond common Solidity vulnerabilities.
Many serious DeFi incidents happen because of incorrect assumptions between different systems:
This incident is a good example.
The Chainlink verification process worked as expected. The vulnerability existed in the custom integration layer that accepted verified data without additional safety checks.
During security reviews, PandaSecurity focuses on:
The Prime PRFI exploit shows that integrating a trusted oracle service is only one part of building a secure DeFi protocol.
Oracle security depends not only on where the data comes from, but also on how protocols validate, store, and consume that data. Every oracle integration should be reviewed as financial infrastructure.
At PandaSecurity, we continue researching live Web3 protocols and helping teams identify security risks before they become costly incidents.
For private smart contract audits and security reviews, contact PandaSecurity.
UNCX's token vesting contract lost roughly $87.7K when an attacker exploited a share-accounting flaw in release(), topUpVesting(), and cancel(). We break down the root cause, the exact attack sequence, and what builders should take away from it — without the jargon.
Autheo’s THEO token lost 92% after attackers used a Hyperlane TrustedRelayerIsm misconfiguration to mint 19 million unbacked tokens on Base and extract roughly $1.76 million. Here’s how the attack worked and why single-key security models remain dangerous for cross-chain assets.
Uniswap v4 hooks explained: the PoolManager singleton, flash accounting, and what the Cork and Bunni exploits teach us about hook security. A PandaSecurity deep dive.
An attacker forced a Uniswap V4 vault into a zero-liquidity state, redeemed one minimal share unit, and withdrew roughly 14,838.47 DAI. Panda Security breaks down the transaction, vulnerable code, root cause, and practical fixes.