GMX 해킹: 재진입 악용으로 4000만 달러 유출

공격 벡터: 재진입 함정
GMX 공격은 공격자가 executeDecreaseOrder에 EOA 대신 스마트 계약 주소를 전달하며 unstakeAndRedeemGlp를 호출하면서 시작되었습니다. 이는 검증 레이어를 우회하고, 환불 루프 중 재진입을 가능하게 했습니다. 각 재귀 호출은 AUM 계산을 팽창시켰습니다: AUM = 총 토큰 풀 가치 - 미실현 손실 - 예비 금액.
레버리지 증폭기
enableLeverage가 활성화되며 GLP가 레버리지 포지션으로 전환되었습니다. 공격자는 환불 전에 방대한 WBTC 단기 포지션을 열었습니다. GLP가 인출될 때 시스템은 미정산 손실을 실자산처럼 처리하며 AUM을 재계산했습니다. 이는 인공적인 초과잉을 만들어, 공격자가 비례 분할보다 더 많은 자산을 청도록 허락했습니다.
성공 이유: 논리의 신뢰 붕괴
이는 코드의 버그가 아니라 가정의 실패였습니다. 우리는 EOA 입력이 안전하다고 가정했으며, 상태 전환 단계에서 호출자 신원을 검증하지 않았습니다. DeFi에서는 신뢰는 낙관적이어야 하며, 검증이 우선입니다.
사후 영향: 시스템적 위험 지속
AUM은 역동적이거나投机적으로 설계되지 않았습니다. 진짜 노출의 오라클이어야 했습니다. 그러나 레버리지와 재진입이 견고한 보호장치 없이 충돌할 때, 심지어 정교한 수학도 무기로 변합니다. 저는 이 거래를 Arbitrum(0x03182d3f…)에서 검토했습니다. 이 결함은 구조적입니다—우연이 아닙니다. 프로토콜이 외부 호출을 자산 검증만큼 엄격히 감사하지 않는 한, 당신은 DeFi를 만들지 않고 카지노를 짓고 있습니다.
LondonCryptoX
인기 댓글 (1)

Этот эксплойт не баг — это классика! Когда твой код на DeFi превращается в казино с водкой вместо калькулятора… АУМ считает убытки как борщ после Нового года. Где EOA? А где мой папа с диплом? Пока ты молчишь — хакеры уже выпили все твои активы и пошли домой… Скоро ли ты тоже будешь ДеФи? Или просто зайдёшь в бар за углом?

