취약점 요약

Flare의 Challenger 컨트랙트는 보상 토큰(Reward tokens, Vault tokens)을 받아서 DEX 라우터를 통해 스왑합니다.

그런데 이때 슬리피지(slippage) 제한이 전혀 설정되어 있지 않음 → 공격자는 스왑에서 어떤 가격이든 강제로 받아들이게 만들 수 있습니다.

따라서 공격자가 가격쌍을 조작하거나 샌드위치 공격을 하면, Challenger는 사실상 0에 가까운 토큰을 받고도 거래를 성공으로 인식해버리며,

결국 보상 토큰(VaultTokens0)을 그대로 공격자가 가져갈 수 있습니다.


타겟 위치


알아야 하는 정보


문제의 코드

(, amountsRecv) = _blazeSwapRouter.swapExactTokensForTokens(
    _vaultAmount,
    0, // <---------- 최소 수령량(minAmount)이 0 → 0개 받아도 거래 성공
    toDynamicArray(address(_vaultToken), address(_fAsset)),
    address(this),
    block.timestamp
);

문제점