원문 제목: "Truebit Protocol 2644만 달러 해킹 사건 계약 상 취약점 분석"
원문 출처: ExVul Security
2026년 1월 8일, Truebit Protocol 프로토콜이 해커 공격을 받아 8,535.36 이더(약 2644만 달러)의 피해를 입었으며, Truebit Protocol 공식 사이트가 다음날 새벽 이를 확인했습니다. ExVul 보안팀은 이번 공격 사건에 대한 상세한 취약점 분석을 진행했고, 결과는 다음과 같습니다:
공격자 주소:
0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50
공격 거래 해시:
0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014
공격자는 getPurchasePrice→0xa0296215→0xc471b10b 의 거래를 4 회 반복하여 공격을 완료했으며, 첫 번째 반복을 예시로 설명합니다.
1. 공격자는 먼저 getPurchasePrice(240442509453545333947284131) 함수를 호출하고, 0을 반환합니다.

2. 공격자는 0xa0296215(c6e3ae8e2cbab1298abaa3) 함수를 호출하며, 동시에 msg.value는 0입니다. 마지막으로 240442509453545333947284131 TRU를 성공적으로 제련했습니다.

3. 공격자는 0xc471b10b(c6e3ae8e2cbab1298abaa3) 함수를 호출합니다. 마지막으로 240442509453545333947284131 TRU를 소멸시키고, 5105.06 ETH를 획득했습니다.
상기 공격 과정을 이해함으로써, getPurchasePrice 함수와 0xa0296215 함수의 로직 상 문제가 명확히 드러납니다. 아래에서 자세한 분석을 시작하겠습니다(계약이 소스코드가 공개되지 않았으므로, 아래 코드들은 디컴파일된 코드입니다).


두 함수를 비교함으로써, 우리는 0x1446 함수가 특정 수량의 TRU를 구매하는 데 필요한 ETH를 얻기 위해 사용되었음을 알 수 있습니다. 분명히 0x1446 함수의 논리에 오류가 있어 ETH 계산이 잘못되었습니다. 아래에서는 0x1446 함수의 논리를 자세히 분석합니다.

0x1446 함수의 논리를 살펴보면, 최종 계산 결과인 v13 == 0이기 때문에 앞서 언급된 계산 논리에 문제가 있음을 알 수 있습니다. 0x18ef 함수가 _SafeMul과 동일하게 작동한다는 점을 이해해야 합니다. 따라서 문제는 원시 덧셈 v12 + v9(v12와 v9는 각각 ^0.6.10 버전 컨트랙트여서 오버플로우 검사가 없음) 사용 시 발생했습니다.
v12 및 v9는 각각 다음을 나타냅니다:
상기 분석을 통해, 공격자의 공격 전략은 대량의 _amountIn을 입력하여 v12 + v9를 매우 작은 값으로 오버플로우시킨 다음, (v12 + v9) / v6 == 0으로 만드는 것입니다.
Truebit Protocol이 이번 공격 사태의 근본적인 이유는 토큰 구매 가격 계산 논리에 심각한 정수 오버플로우 취약점이 존재했기 때문입니다. 컨트랙트가 Solidity ^0.6.10 버전을 사용하고 핵심 산술 연산에 대해 안전성 검사를 수행하지 않았기 때문에 최종적으로 8,535.36 ETH의 중대한 손실이 발생했습니다. 현재의 Solidity 새 버전은 이미 오버플로우 취약점을 완화했습니다. 이 공격 사건은 해커가 AI를 활용하여 이미 온라인 상태인 이전 DeFi 프로토콜에서 취약점을 발견하는 과정에서 발생했다고 생각됩니다(Balancer 및 yETH 공격의 경우 포함). 이러한 AI를 사용한 공격 사건이 이전 DeFi 프로토콜을 대상으로 더 많이 발생할 것으로 예상되므로, 프로젝트 측은 스마트 계약 코드를 새로운 보안 감사를 수행하도록 권고합니다. 취약점을 발견하면 가능한 빨리 계약을 업데이트하거나 자산 이전을 수행하고 온체인 모니터링을 철저히 하여 이상을 즉시 감지하여 손실을 최소화해야 합니다.
본문은 투고를 기반으로 합니다. BlockBeats의 견해를 대변하지 않습니다.
BlockBeats 공식 커뮤니티에 참여하세요:
Telegram 구독 그룹:https://t.me/theblockbeats
Telegram 토론 그룹:https://t.me/BlockBeats_App
Twitter 공식 계정:https://twitter.com/BlockBeatsAsia