Ajna Protocol, a lending platform that operates without price oracles, reportedly lost approximately $775,000 in ETH. The attackers exploited the platform's internal liquidation accounting system rather than third-party price data sources for their assault.
The attack affected a range of liquidity pools, such as syrupUSDC, wstETH, rETH, cbETH, WBTC, WETH/USDC, and sDAI. However, it raises questions about a crucial aspect of Ajna's philosophy—the absence of oracles, governance, and a self-determining market.
The attacker capitalized on this very assumption.

Ajna's Oracle Was Omitted by Design
Most lending protocols use external services like Chainlink to determine collateral prices. However, Ajna deliberately does not. In fact, its whitepaper describes the protocol as follows:
"The Ajna Protocol is a non-custodial, peer-to-peer, permissionless lending, borrowing, and trading system that does not require governance or external price data feeds to operate."
Instead, lenders set the interest rates at which they will offer loans by allocating funds into fixed-amount "buckets," and smart contracts determine when a loan must be repaid. To initiate a liquidation, the party triggering it must also post a liquidation bond, which incurs a financial penalty for unjustified liquidations.
MixBytes, a security specialist, explained the rationale behind forgoing an oracle:
"A significant portion of attacks on DeFi protocols are caused by oracle price manipulations, configuration errors, and access control issues."
Ajna's solution was to remove the vulnerable point and trust in the pool's operations. A Defimon warning hinted that the attacker focused on this internal mechanism—stealing through manipulation of liquidation accounting—rather than undermining an external price oracle.
An Unanswered Warning Lasted an Hour
Defimon claims it was able to detect "a prepared attack more than an hour before the first transaction used to exploit the vulnerability" and reported it to Ajna via the project's Discord chat. By the time the attack began, the protocol was still unprotected.
The hacker then bypassed numerous pools. According to the report, the syrupUSDC pool suffered losses of approximately $173,700 out of the total loss of around $775,000.
The damage to Ajna is significant. According to a DefiLlama report at the time, the Total Value Locked (TVL) for Ajna V2 was about $206,000. Active loans were valued at approximately $418,000, and the 30-day TVL change was -54.2%. The stated damage from the attack at that point exceeded Ajna's TVL. DefiLlama data has since changed.
To Hack the Code or To Make It Believe the Impossible
The more important question is whether the attacker hacked Ajna's code or tricked the system into accepting false data as valid.
Available evidence suggests the latter. Ajna's published audit history includes previous findings concerning "profit" calculations in the liquidation process, as well as instances of incorrect "bucket" state accounting and others. These issues are considered resolved; however, they confirm the existence of problems related to liquidation and accounting logic.
This pattern is fairly common. Cryptopolitan reported on a case with Moonwell, where an attacker used about $7 million to inflate the illiquid token MAMO by eight times, then borrowed nearly $10 million in real assets, ultimately escaping with about $6 million.
According to Nethermind, these attack methods work as follows:
"They make the smart contract calculate a distorted price and take advantage of it before the transaction completes."
Ajna removed the oracle but still requires its smart contracts to trust its calculations.
The V2 Architecture Becomes the Real Story
| Stage | Data Point |
|---|---|
| Pre-Attack | Ajna V2 TVL / Affected Pool Liquidity |
| Trigger | First Anomalous Transaction |
| Exploit | Smart Contract Function + Manipulated Assets |
| Theft | Assets Transferred Out of Protocol |
| Conversion | DEX Swaps / Stablecoins Acquired |
| Escape | Bridges / CEX / Other Protocols |
| Residual Impact | Remaining Bad Debt or Deteriorated Liquidity |
| Recovery | Frozen Assets / Whitehat Recovery / Protocol Response |
| Metric | Current Figure | 30-Day Change | Why It Matters |
|---|---|---|---|
| Reported Exploit Loss | TBD | — | Pending Ajna investigation/on-chain accounting confirmation |
| TVL | $449,783 | -17.1% | Capital attraction measure, still held in V2 smart contracts |
| Active Loans | $30,198 | Not reported | Indicates outstanding borrower debt |
| Pools with Traces | 5 | — | Useful denominator to determine if the incident is isolated or systemic |
| Ethereum TVL | $425,825 | — | 94.7% of V2 TVL |
| Arbitrum TVL | $8,552 | — | Minor cross-chain exposure |
| Base TVL | $7,354 | — | Minor cross-chain exposure |
| Rari TVL | $3,555 | — | Minor cross-chain exposure |
| OP Mainnet TVL | $3,227 | — | Minor cross-chain exposure |
Ajna V2 currently has a lending pool volume of about $450,000 and active loans of $30,200, with the lending volume down 17.1% over 30 days.
A useful analytical indicator is that active loans account for only about 6.7% of the reported total lending volume. This makes a key investigation question particularly interesting: does the suspected vulnerability affect the accounting of outstanding debt, deposited liquidity, or both? Thus, the question boils down to, "Which assumption embedded in V2 could the attacker monetize?"
A Small Pool in a Record Year for Achievements
The $775,000 loss is minor compared to the largest crypto hacks of 2026, but it fits into a broader trend.
TRM Labs recorded 207 hacks, the highest for a six-month period, with a typical incident around $219,000. Over 100 cases involved smart contract exploits.
Infrastructure breaches and operational issues accounted for only about 15% of incidents but represented roughly 76% of total losses.
Thus, the Ajna case illustrates another side of the security problem: losses do not necessarily have to stem from large-scale exchange hacks or private key compromises. They can arise from the assumptions underlying increasingly complex DeFi lending logic.
end-content




