Skip to content
THREATWIRE

2026-10-15 · record inc_0014 · updated 2026-10-19

KolanHook: an unbounded buyback settled at a manipulated spot price

A flash loan moved the KLN spot price in the pool the hook owns, then two expired windows were closed, triggering a buyback with no price bound. About 2.31 ETH left the hook; the attacker kept about 1.28 ETH.

KolanEthereumComponent: KolanHook, Uniswap v4 hook; accept() and the window buyback

Event: Confirmed on-chainRoot cause: Independent analysisLoss: Independent analysis

This record is not indexed by search engines: it does not yet have a root cause confirmed from a primary source.

Current status

No official statement found.

Timeline

  1. 2026-10-15 11:06:11 UTCAttack transaction confirmed in block 26,197,504.
  2. 2026-10-16Public PoC added to a reference repository.

Root cause

Independent analyses agree that accept() could be called by anyone once a window expired and that the buyback used the pool's own instantaneous price with no bound. ThreatWire has not read the contract source.

Basis: independent analysis · verified by us against that source

Classes: Oracle and spot-price manipulation, Flash-loan amplification

Impact: loss and recovery

The hook's own ETH reserves. Small in dollars; the pattern matters.

Reported loss

$3K (2.31 ETH)

USD basis: About $3K at the time (Panda Security). Hook outflow 2.309861 ETH; attacker net 1.279914 ETH after repaying the loan, per the transaction (a reconstruction gives 1.2805).

Recovered or returned

Unknown

No recovery reported.

Loss and recovery are separate figures. They are never netted, and amounts in different currencies are never added together.

Addresses and transactions

Contracts and wallets

  • 0x0136fe…4ba8eccontractEtherscan ↗

    KolanHook (affected)

    Ethereum · victim · Confirmed on-chain · contract code present at the address (read-only)

Transactions

  • 0x7b1319…0915a9txEtherscan ↗

    attack · block 26,197,504 · 2026-10-15 11:06:11 UTC

    Confirmed on-chain · read-only JSON-RPC lookup of the transaction and its block · checked 2026-10-19

Explorer links use the chain we confirmed for each item. Where no explorer is configured, or a chain is not verified, we say so rather than guess.

Associated code

Public PoC metadata

Status
Test or reproduction identified
Dataset
SunWeb3Sec/DeFiHackLabs
Stored commit
7363f76db51f0fea97f8e659b20ee8bdc5fbca25
Directory / file
src/test/2026-10/KolanHook_exp.sol
Framework
Foundry
Licence
file UNLICENSED; repository Apache-2.0
Seen at pin
yes · retrieved 2026-10-19
Repository claim
1.279453 ETH net to the attacker EOA on Ethereum (surplus 1.279914429958618589 ETH after the 6.7 WETH Balancer flash loan is repaid, minus ~0.00046 ETH gas), draining KolanHook's full 2.309861 ETH of escrowed window funds
Note
Reproduction metadata only. ThreatWire has not run it and does not treat a repository entry as proof that anything is exploitable.

Remediation and defensive indicators

No fix or remediation has been published by the project that we could verify.

Defensive lessons from the class

  • Estimate what it costs to move each price and compare it with what that price controls.
  • Require a minimum number of genuinely independent sources and reject answers below it.
  • Do not treat a single-block price as truth.
  • Assume any bug that needs capital can be funded for free.

Sources

Similar incidents

Method, uncertainty and corrections

Still unknown

  • Whether Kolan has responded
  • Whether other windows remain exposed

Where sources disagree

  • Loss: 2.31 ETH left the hook; the attacker kept about 1.28 ETH. These measure different things.
  • Repository reconstruction gives 1.279453 ETH; the transaction shows 1.279914 ETH.

Written by ThreatWire editorial. Facts attributed to the sources listed; figures are estimates and not independently verified unless marked on-chain. Published 2026-10-19, last updated 2026-10-19. Figures are estimates from public post-mortems and named analysts; not independently verified unless marked as confirmed on-chain.

No corrections recorded since publication.