GM(Good Morning)X가 공격을 당했으며, 공격자는 프로젝트 계약의 재진입 취약점을 통해 공격을 실시하여 약 4,200만 달러의 이익을 얻었습니다. Beosin 보안팀은 이번 공격 사건에 대한 취약점 분석 및 자금 추적을 수행하고 결과를 다음과 같이 공유했습니다:
상세 공격 단계
공격자는 먼저 OrderBook 계약의 executeDecreaseOrder 함수 내 보증금 환불 메커니즘을 이용하여 재진입 공격을 시작해 프로젝트의 Timelock 계약의 레버리지 스위치를 우회했습니다:

그런 다음, 공격은 플래시 론을 통해 USDC를 대출받아 GLP를 민트하고 동시에 USDC를 보증금으로 비트코인(BTC)의 숏 포지션을 증가시켜 GLPmanager 계약의 운영자산(AUM) 값을 인위적으로 높였으며, 이 값은 GLP 가격 계산에 영향을 미칩니다.

마지막으로, 공격자는 비정상적인 가격으로 GLP를 상환받아 이익을 얻고 다른 토큰으로 교환했습니다.
취약점 분석
위의 공격 프로세스를 통해 이 사건의 취약점 이용 원인은 다음 두 가지로 볼 수 있습니다:
- 재진입 방지 부재로 상환 과정에서 내부 상태를 변경할 수 있었습니다.
- 상환 로직이 복잡하고 충분한 보안 검증이 부족했습니다.
GM(Good Morning)X는 여러 차례 보안 감사를 거쳤음에도 불구하고 이 재진입 취약점은 간과되었습니다. 상환 로직에 대해 더 엄격한 검사를 수행하고 잠재적인 재진입 취약점을 고려했다면 이러한 보안 사고를 방지할 수 있었을 것입니다.
도난 자금 추적
Beosin Trace의 도난 자금 추적 결과: 공격자 주소 0x7d3bd50336f64b7a473c51f54e7f0bd6771cc355는 약 4,200만 달러의 이익을 얻었으며, 이후 DeFi 프로토콜을 통해 스테이블코인과 알트코인을 이더리움(ETH)과 USDC로 교환하고 여러 크로스체인 프로토콜을 통해 도난 자산을 이더리움 네트워크로 이전했습니다. 현재 도난 자산 중 약 3,200만 달러 상당의 이더리움(ETH)은 다음 4개의 이더리움 네트워크 주소에 보관되어 있습니다:
- 0xe9ad5a0f2697a3cf75ffa7328bda93dbaef7f7e7
- 0x69c965e164fa60e37a851aa5cd82b13ae39c1d95
- 0xa33fcbe3b84fb8393690d1e994b6a6adc256d8a3
- 0x639cd2fc24ec06be64aaf94eb89392bea98a6605
약 1,000만 달러의 자산은 아비트럼(Arbitrum) 네트워크의 주소 0xdf3340a436c27655ba62f8281565c9925c3a5221에 보관되어 있습니다. Beosin Trace는 해커 관련 주소를 블랙리스트에 추가했으며 향후 지속적으로 추적할 예정입니다.

Beosin Trace 분석에 따르면, 모든 도난 자금은 여전히 공격자의 여러 주소에 보관되어 있습니다
요약
이번 공격의 핵심은 GM(Good Morning)X 계약에 재진입 취약점이 존재하여 공격자가 인위적으로 높아진 운영자산(AUM) 값을 통해 대량의 자산을 상환받아 이익을 얻을 수 있었다는 점입니다. GM(Good Morning)X와 같은 복잡한 DeFi 프로토콜은 다각도, 다층적인 보안 감사를 통해 계약 코드에 대한 철저한 테스트와 검토가 필요합니다. 이전에 Beosin 보안팀은 Surf Protocol, SyncSwap, 레버파이(LeverFi), Owlto Finance 등 여러 DeFi 프로토콜의 보안 감사를 완료했으며, 계약 로직의 결함과 간과될 수 있는 극단적인 상황을 발견하는 데 중점을 두어 DeFi 프로토콜의 전방위적 검증을 보장하고 있습니다.






