Back to Blog

테더 골드 스마트 컨트랙트의 공개 전송 취약점

Code Auditing
May 27, 2023
2 min read

저희의 내부 분석 도구는 4월 5일에 Tether Gold 컨트랙트에서 공격자가 사전 정의된 주소로 누구의 XAUt(Tether Gold) 토큰이든 전송할 수 있는 버그를 발견했습니다. 팀은 저희의 보고를 받았고 내부적으로 이 문제를 파악하고 있었다고 밝혔습니다. 오늘 저희는 해당 문제가 수정되었음을 확인하였으며, 여기에서 그 세부 사항을 공유하고자 합니다. 또한, Phalcon Fork를 사용하여 이 취약점의 PoC를 개발하고 디버깅하는 방법을 설명하겠습니다.

0x0. 취약점

컨트랙트transferFrom 함수에서, 누구든지 이 함수를 호출하여 다른 사용자의 토큰을 토큰 소유자가 정의한 신뢰할 수 있는 수신 주소로 전송할 수 있습니다. 이 취약점은 공격자의 계정으로 직접 토큰을 전송하는 데 사용될 수는 없지만, 공격자는 여전히 풀의 토큰을 전송하여 풀(예: WETH-XAUt 풀)의 토큰 가격을 조작하여 이익을 취할 수 있습니다.

이 취약점에 대한 수정은 다음과 같이 간단합니다.

0x1. 취약점 악용 방법

PoC를 작성하고 디버깅하기 위해 Phalcon Fork를 사용할 수 있습니다. 먼저, 취약점이 패치되기 전에 Fork를 생성할 수 있습니다. Fork API를 통해 Fork를 생성할 때 블록 높이 17038763을 사용했습니다.

1단계: 충분한 이더 준비

첫 번째 단계는 공격자의 가스비를 위한 충분한 이더를 확보하는 것입니다. 계정에 이더가 없을 경우, vitalik.eth로부터 이더를 전송하는 트랜잭션이 발행됩니다.

2단계: Tether Gold 컨트랙트의 소유권 이전

Tether Gold 컨트랙트의 소유자는 멀티시그 지갑(0xC6CDE7C39eB2f0F0095F41570af89eFC2C1Ea828)입니다. 소유권을 공격자에게 이전하기 위해서는 멀티시그 트랜잭션을 제출한 후 해당 트랜잭션을 확인해야 합니다.

3단계: Tether Gold 컨트랙트에 권한 있는 계정 추가

저희는 새로운 계정 0x189e7947a9d9210eec3a41dcf5f536bb1d7726f5를 권한 있는 계정으로 추가했습니다. 그런 다음, transferFrom 함수를 호출하여 피해자로부터 권한 있는 계정으로 XAUt 토큰을 전송합니다.

0x2. PoC

다음 깃허브에서 PoC를 확인하세요:

Sign up for the latest updates
~$160만 손실: Moke 토큰, LpdFi 익스플로잇 | BlockSec 위클리
Security Insights

~$160만 손실: Moke 토큰, LpdFi 익스플로잇 | BlockSec 위클리

2026년 8월 3~9일, BNB 체인에서 2건의 보안 사고가 발생해 총 약 160만 달러의 손실이 발생했으며, 모두 가격 조작이 원인이었습니다. LpdFi(약 69.7만 달러)는 PancakeSwap 유동성 풀을 주문 평가와 이자 정산에 동시 사용해 공격자가 원금을 부풀리고 과도한 이자를 탈취했습니다. Moke Token(약 90.6만 달러)은 조작 가능한 현물 가격과 중복 LP 배당 회계를 결합해 MOKE를 부풀려 BNB 배당을 반복 수령했습니다.

COLDCARD 사건: 지갑의 "무작위" 시드가 무작위가 아니었을 때
Security Insights

COLDCARD 사건: 지갑의 "무작위" 시드가 무작위가 아니었을 때

COLDCARD 펌웨어의 빌드 통합 버그로 비트코인 시드 생성이 취약한 소프트웨어 RNG로 라우팅되어 지갑 시드가 오프라인 복구 가능해졌습니다. 시드 자체의 취약점이므로 펌웨어 업데이트로 해결 불가하며, 2026년 8월 7일 기준 확인된 피해는 1,405 BTC(~9,100만 달러), 비공개 추정치는 최대 2,055 BTC입니다.

~$88M 손실: COLDCARD 및 LULA 익스플로잇 | BlockSec 위클리
Security Insights

~$88M 손실: COLDCARD 및 LULA 익스플로잇 | BlockSec 위클리

2026년 7월 27일~8월 2일, 비트코인과 BNB 체인에서 약 8,800만 달러 손실을 유발한 두 건의 보안 사고가 발생했습니다. COLDCARD 사고는 하드웨어 지갑 펌웨어의 엔트로피 오류로, RNG 매크로 활성화 여부 미확인으로 결정론적 폴백이 실행되어 약 1,370 BTC(~8,800만 달러)가 탈취됐습니다. BNB 체인의 LULA 토큰은 비즈니스 로직 취약점으로 `recycle()` 함수가 악용되어 PancakeSwap V2 유동성에서 약 57만 8천 달러가 유출됐습니다.

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit