볼티지 파이낸스 (Voltage Finance) - REKT



볼티지 파이낸스가 퓨즈 네트워크의 “랜딩 서비스” 파트너인 올라 파이낸스를 통해 공격당해 400만 달러를 도난당했습니다.

올라는 자신을 컴파운드 포크라고 말하기보다, “다른 팀들이 컴파운드 같은 인스턴스를 만들 수 있도록 하는 기술 제공자" 라고 정의했습니다.

이번 달 초에 Gnosis / xDAI 체인에서 발생했던 비슷한 사건은 컴파운드의 코드를 사용하는 팀들에게 주의하라고 경고하기에 충분했습니다.

하지만 볼티지나 올라는 이 뉴스를 듣지 못했던 것 같습니다.

발생했던 DeFi 공격들을 계속 파악하고 있는 개발자가 한 명이라도 있었다면…

Agave DAO와 헌드레드 파이낸스 사건과 비슷하게, 이번 공격은 퓨즈 네트워크가 브릿지된 토큰들을 위해 사용하였던 ERC 677 기준에 있던 재진입 취약점 때문에 발생하였습니다.

이 토큰 유형들은 callAfterTransfer() 기능이 있는데, 이 기능은 잔액이 갱신되기 전에 추가로 전송하여 악용될 수 있었습니다(기본 코드가 checks-effects-interactions 권장사항 실행 루틴을 따르지 않았습니다).

원본 컴파운드의 코드는 이 패턴을 따르지는 않았지만, 모든 담보 토큰들이 프로토콜에 추가되기 전에 취약점이 있는지를 자세히 조사하였었습니다.

Credit: BlockSecTeam

퓨즈에서 공격자의 주소: 0x371D7C9e4464576D45f11b27Cf88578983D63d75

예시 tx (BUSD): 0x1b3e06b6b310886dfd90a5df8ddbaf515750eda7126cf5f69874e92761b1dc90

공격자 컨트랙트 A: 0x632942c9BeF1a1127353E1b99e817651e2390CFF

공격자 컨트랙트 B: 0x9E5b7da68e2aE8aB1835428E6E0c83a7153f6112

1: 컨트랙트 A가 550 WETH를 컨트랙트 B로 전송합니다

2: 컨트랙트 B는 550 WETH를 입금하여, 27,284 oWETH를 생성합니다

3: 컨트랙트 B가 507,216 BUSD를 대출받습니다

4: callAfterTransfer() 기능을 사용해서 BUSD 대출 컨트랙트를 컨트랙트 B로 되돌려줍니다

5: 컨트랙트 B가 507,216 BUSD 와 27,284 oWETH 를 컨트랙트 A로 되돌려줍니다

6: 컨트랙트 A는 27,284 oWETH를 상환하고 최초에 입금한 550 WETH을 되돌려받는 동시에, 507,216 BUSD를 수익으로 챙깁니다

BlockSecTeam이 설명한 바와 같이:

borrow() 기능 코드의 논리 구조를 보면, 내부 상태는 외부 호출 이후에 업데이트되도록 설정되어있습니다. 특히 doTransferOut() 기능은, 결과적으로 외부 호출로 이어지는 ERC677-기반 토큰의 transfer() 기능을 발동하게 됩니다.

위의 과정은 각각 $USDC, $FUSD, $WBTC, $WETH & $FUSE를 얻기 위해 반복되었습니다.

그 결과로 훔친 자금은 우선 이더리움으로 브릿지되었고, (Tornado Cash에서 처음에 자금이 보내짐) 나머지는 ETH, WBTC, USDC (Circle이 자금을 동결할까요?) 그리고 FUSE의 형태로 대략 총 310만 달러의 가치의 토큰들이 이 주소에 남아있습니다.

Agave와 헌드레드가 같은 종류의 공격의 피해자가 되었을 때, 저희는 이렇게 말씀드렸었습니다;

하나의 포크가 무너진다면, 다른 모든 프로젝트들도 그들의 기반을 확인해봐야 합니다.

볼티지 파이낸스는 그렇게 하지 않았기 때문에 리더보드의 (#64) 번째에 한 자리를 차지하게 되었습니다.


기사 공유하기

REKT는 익명 작성자들에 의한 공공 플랫폼이며, REKT에 작성된 관점이나 내용에 대해서 그 어떤 책임도 지지 않습니다.

기부 (ETH / ERC20): 0x3C5c2F4bCeC51a36494682f91Dbc6cA7c63B514C

disclaimer:

REKT는 당사 웹 사이트의 익명의 작성자 또는 REKT에 의해 게시되거나 관련된 서비스에서 게시되는 콘텐츠에 대해 어떠한 책임도 지지 않습니다. 당사는 익명 작성자들의 행동 및 게시물에 대한 규칙을 제공하지만, 익명의 작성자가 웹 사이트 또는 서비스에 게시, 전송 혹은 공유한 내용을 통제하거나 책임지지 않으며, 귀하가 웹 사이트 또는 서비스에서 직면할 수 있는 불쾌함, 부적절함, 음란함, 불법 또는 기타 해로운 콘텐츠에 대해서도 책임을 지지 않습니다. REKT는 당사 웹 사이트 또는 서비스 사용자의 온라인 또는 오프라인 행위에 대한 책임을 지지 않습니다.