Safe 인증 위조로 이더리움(ETH) FlashLoopAdapter에서 114.09 ETH 유출
공격자가 FlashLoopAdapter의 Safe 검증을 위조해 Aave V3 레버리지 포지션을 보유한 Safe 지갑 2곳에서 약 114.09 ETH, 달러로 약 30만 5,000달러 규모를 인출했습니다.
AI 요약AI
- 공격자가 Safe 검증을 위조해 10월 1일 15:08:57 UTC에 FlashLoopAdapter에서 114.09 ETH를 인출했다
- 피해 금액은 당시 이더리움 가격 기준 약 30만 5,000달러로 집계됐다
- SlowMist는 10월 2일 보안 경보를 통해 open()과 close() 함수의 위조 가능한 인증 결함을 원인으로 지목했다
- 공격자는 Morpho의 플래시 론으로 WETH 약 1,335개를 빌려 Aave 부채를 상환했다
Safe 검증 위조로 모듈이 열렸다
이번 사고의 출발점은 대출 풀이 아니라 권한 검증이었다. Aave V3에서 레버리지 순환 포지션을 열고 닫도록 설계된 커스텀 컨트랙트인 FlashLoopAdapter는, 호출자가 정상적인 Safe 지갑에서 어댑터를 모듈로 등록했다는 사실을 증명하도록 요구한다. 그런데 10월 1일 목요일, 악성 컨트랙트가 Safe인 것처럼 가장해 기대 값을 돌려주며 이 검증을 통과했다. 모듈을 등록해 둔 지갑 두 곳은 합계 114.09
Ethereum (ETH), 당시 이더리움 가격으로 약 30만 5,000달러 상당을 잃었다. 온체인 데이터에 따르면 첫 공격 트랜잭션은 10월 1일 15:08:57 UTC에 발생했고, 보안 업체 SlowMist는 다음 날인 10월 2일 금요일 보안 경보를 게시해 우회의 원인을 어댑터의 open()과 close() 함수에 남겨진 위조 가능한 인증 약점으로 규정했다. SlowMist는 이 사건을 대출 시장의 침해가 아닌 스마트 컨트랙트 취약점으로 분류했다. 해킹 규모 자체는 작지만, 공격자가 택한 경로가 남기는 교훈은 작지 않다.
공격 기법은 범위가 좁았으나 정확했다. 공격자가 소유한 컨트랙트는 어댑터의 스왑 라우터와 호출 데이터를 함께 공급하고, 라우터가 피해자 Safe를 가리키도록 설정한 뒤, 호출 데이터로 execTransactionFromModule 함수를 실행하도록 지정했다. 이 함수는 Safe 모듈이 Safe 자신의 지갑 주소에서 트랜잭션을 집행하는 통로다. FlashLoopAdapter가 이미 해당 Safe에 모듈로 등록돼 있었기 때문에 지갑은 이 호출을 권한 있는 모듈 트랜잭션으로 처리했고, 소유자 서명 없이 담보 자산을 옮겼다. Aave의 대출 풀도 Safe 표준 자체도 결함으로 지목되지 않았다. 문제는 어댑터의 호출자 인증과 집행 로직에 있었다. Safe 모듈은 자동화를 지원하기 위해 설계됐지만, 등록된 모듈에 지갑이 보유한 자산으로 가는 직접 경로를 넘겨준다는 점도 함께 안고 있다. 공격자 주소나 자금 회수 계획은 아직 공개되지 않았다.
플래시 론 청산, 총량과 순손실의 차이
공격자는 청산 자금을 Morpho에서 빌린 WETH 플래시 론으로 조달했다. 플래시 론은 하나의 트랜잭션 안에서 대출과 상환이 모두 끝나는 방식이다. WETH 약 1,335개가 더 큰 Safe의 순환 포지션에 묶인 Aave 부채 상환에 쓰였고, 상환으로 담보가 풀리며 해당 지갑에서 weETH 약 1,306개가 인출됐다. 두 번째 Safe는 같은 모듈을 통해 weETH 약 6.4개를 잃었다. 인출 금액은 총 거래 흐름이지 공격자의 최종 수익이 아니다. 빌린 자금을 정산하고 일부 자산을 교환한 뒤 공격자에게 남은 것은 약 114.09
Ethereum (ETH), 달러로 약 30만 5,000달러다. 1,306 weETH를 피해 금액으로 읽으면 손실을 크게 과대평가하게 된다. 피해 Safe 두 곳은 단일 소유자를 공유했고, 순손실 전액은 한 운영자의 포지션 관리 체계에 집중됐다. 이더리움 메인넷의 트랜잭션 기록에는 대출 개시부터 최종 교환까지 각 단계가 순서대로 남아 있다.
순환 포지션은 예치와 대출 단계를 반복해 Aave V3에서 노출을 키우는 구조다. 그래서 청산하려면 담보를 옮기기 전에 부채부터 갚아야 한다. Aave 창업자이자 최고경영자인 Stani Kulechov는 10월 2일 공식 발문에서 취약한 구성 요소는 Aave 위에 구축된 외부 서드파티 어댑터이며 “Aave v3에 영향은 전혀 없다”고 밝혔다. V3 풀은 사고 기간 내내 정상 운영됐고, 대출 시장 내부의 손실 보고도 없다. 기록에는 9월의 별도 Safe 지갑 사고도 함께 남아 있다. 이 사건은 rsETH 약 2,900개와, 모듈이 등록된 다른 집행 컨트랙트의 취약한 인증과 관련됐지만, 관련 컨트랙트와 공격 경로가 모두 달랐고 FlashLoopAdapter로 거슬러 올라가는 것은 10월 사건뿐이다.
사후 분석이 긋는 경계선
COINOTAG의 판단은 이렇다. 이번 사례의 증거 사슬은 이례적으로 완전하다. SlowMist의 사후 분석은 근본 원인을 어댑터 내부의 위조 가능한 Safe 검증으로 고정하고, 창업자의 공식 입장은 책임을 Aave V3 내부가 아닌 통합 계층에 둔다. 온체인 수치도 트랜잭션 기록과 모두 맞아떨어진다. 상환된 부채 WETH 1,335개, 총 흐름으로 움직인 담보 weETH 약 1,306개, 순수익으로 남은 114.09 ETH가 그 대응 관계다. 같은 결함은 이 어댑터를 실행 중인 Safe에만 도달한다. Aave의 풀과 Safe 표준은 소스들이 설정한 범위 밖에 있다. 유사한 레버리지 모듈을 등록해 둔 운영자에게 남은 실질적 질문은 하나다. 모듈이 호출자의 신원을 검증하는가, 아니면 반환된 값을 그대로 신뢰하는가.
이 콘텐츠는 인공지능으로 생성되어 AI 검토를 거쳤으며 COINOTAG 편집 감독 하에 게시되었습니다.

