피드로 돌아가기
Dev.toSecurity
원문 읽기
MMR 증명 버그와 권한 검증 부재로 인한 10억 DOT 무단 발행 사고
Polkadot Bridge Hack: MMR Proof Bug Leads to 1B DOT Mint
AI 요약
Context
Ethereum 기반 Hyperbridge ISMP 게이트웨이의 MMR Proof 검증 로직 및 TokenGateway 권한 관리 체계의 구조적 결함 발생. Proof와 Request 간의 암호학적 바인딩 부재로 인해 위조된 요청이 정상 증명으로 승인되는 취약점 노출.
Technical Solution
- leafCount가 1인 엣지 케이스에서 범위를 벗어난 leafIndex 입력 시 잘못된 Root가 생성되는 MMR 라이브러리 버그 해결을 위한 엄격한 경계값 검증 로직 도입
- 증명된 데이터가 실제 요청 내용과 일치함을 보장하기 위해 (request + proof) 조합의 keccak256 commitment를 통한 암호학적 바인딩 구조 설계
- 단순 source 필드 확인 방식에서 탈피하여 전체 요청의 유효성을 검증하는 authenticate(request) modifier 적용으로 권한 확인 프로세스 강화
- 즉각적인 권한 변경을 방지하기 위해 challengePeriod 설정을 강제하고 최소 1시간 이상의 지연 시간을 부여하는 Governance Safety Window 구축
- 관리자 권한 부여 시 즉시 Minting 권한을 부여하는 대신 Time-lock 및 다중 서명(Multi-sig) 요구 사항을 추가한 분리된 역할 관리 모델 도입
실천 포인트
1. Merkle-based 검증 로직 작성 시 leafCount 0, 1 등 경계값에 대한 단위 테스트 수행 여부 검토
2. 증명(Proof)과 요청(Request) 페이로드를 하나의 Commitment로 묶어 Replay Attack 및 Payload 교체 가능성 차단
3. 관리자 권한 변경 등 민감한 작업에 대해 즉시 실행이 아닌 Time-lock 기반의 지연 실행 구조 적용
4. 단일 게이트웨이가 모든 자산을 처리하는 구조에서 자산별 독립 게이트웨이로 분리하여 Blast Radius 최소화