Cobo Security Team: Stargate 크로스 체인 브리지의 기본 프로토콜인 LayerZero의 주요 보안 취약점 분석

avatar
Cobo Labs
3년 전
이 글은 약 1281자,전문을 읽는 데 약 2분이 걸린다
이 취약점은 LayerZero에 구축된 모든 교차 체인 프로젝트의 자산에 영향을 미칠 수 있습니다.

며칠 전 Stargate 크로스 체인 브리지의 기본 프로토콜인 LayerZero는 기본 트랜잭션 검증 계약을 업데이트했습니다.Cobo 블록체인 보안 팀의 분석에 따르면 이 업데이트는 이전 버전의 심각한 허점을 수정했으며, LayerZero에 구축된 모든 교차 체인이 프로젝트의 자산에 영향을 미칩니다.

Stargate Finance최근 가장 눈길을 끄는 크로스 체인 브리지 프로젝트로, 발행 당시 TVL은 미화 35억 달러를 초과했습니다.

Stargate 교차 체인 브리지의 맨 아래 계층은 교차 체인 메시징을 달성하기 위해 LayerZero를 기반으로 합니다. LayerZero의 크로스 체인 메시징의 기본 원칙은 다음과 같습니다.

  • 오라클은 소스 체인의 블록 해시 및 블록 영수증 루트를 대상 체인에 제출합니다.

  • Relayer는 소스 체인의 거래 영수증과 영수증과 블록 영수증 루트의 경로 관계를 대상 체인에 제출합니다. 이때 대상 체인의 거래 검증 계약은 Ethereum MPT의 종속 관계를 기반으로 합니다. 1] 제출된 영수증과 Oracle이 제출한 receiptsRoot 간의 해당 관계를 확인합니다.

  • 확인이 통과되면 영수증은 법적 영수증으로 간주되어 상위 계층 프로토콜로 전달되어 후속 교차 체인 자산 작업을 트리거합니다.

LayerZero는 3월 28일 아무런 발표 없이 교차 체인 사용에 대한 검증 계약을 업데이트했습니다[2]. Cobo 보안 팀은 원래 검증 계약(MPTValidator)과 새로운 검증 계약(MPTValidatorV2)의 코드를 비교하여 이 업데이트가 이전 주요 보안 취약점에 대한 수정 사항임을 발견했습니다 [3].

패치 코어 코드는 다음과 같습니다.

Cobo Security Team: Stargate 크로스 체인 브리지의 기본 프로토콜인 LayerZero의 주요 보안 취약점 분석

원본 취약점 코드는 MPT 검증을 수행할 때 외부에서 전달된 포인터를 통해 다음 계산 계층에 사용되는 hashRoot를 획득한다. 여기에서 solidity는 add, mload 및 기타 어셈블리 명령을 사용하여 proofBytes에서 hashRoot를 얻습니다. proofBytes 길이 내에서 포인터 길이에 제한이 없기 때문에 공격자는 out-of-bounds 포인터를 전달할 수 있습니다. 계약은 다음 레이어 hashRoot로 proofBytes 이외의 데이터를 읽습니다. 이런 식으로 hashRoot를 위조할 가능성이 있으며, 이는 위조된 거래 영수증이 MPT 검증을 통과할 수 있다는 사실로 이어집니다. 궁극적인 결과는 Oracle이 완전히 신뢰할 수 있다는 전제 하에서 Relayer가 영수증 데이터를 위조하여 크로스 체인 프로토콜을 여전히 일방적으로 공격할 수 있다는 것입니다. 이는 LayerZero의 이전 보안 가정을 ​​깨뜨립니다.

현재 LayerZero 프로토콜의 Oracle은 다중 서명과 유사한 계약으로 3명의 관리자 중 2명이 동일한 데이터를 제출하면 데이터가 유효한 것으로 간주됩니다. 그러나 Relayer는 단일 서명 EOA에 의해 제어되며 Relayer는 모든 공격 프로세스를 완료하기 위해 공격 데이터를 제출할 수 있습니다.

패치된 코드는 들어오는 경로를 사용하고 safeGetItemByIndex 함수를 사용하여 MPT의 다음 계층의 hashRoot를 가져와 현재 proofBytes에 hashRoot가 있는지 확인하여 MPT 검증이 올바르게 진행될 수 있도록 합니다.

이번에 취약점을 노출한 코드는 LayerZero 프로토콜의 핵심 MPT 트랜잭션 검증 부분의 코드로 전체 LayerZero 및 상위 계층 프로토콜(예: Stargate)의 정상 작동의 초석입니다. LayerZero 프로젝트 팀이 현재 명백한 취약점을 수정했지만 다른 취약점이 악용될 가능성을 배제할 수 없습니다. 또한 LayerZero 프로젝트의 주요 계약 대부분은 현재 EOA에 의해 제어되며 다중 서명 메커니즘이나 시간 잠금 메커니즘이 채택되지 않습니다. 이러한 권한 있는 EOA의 개인 키가 유출되면 모든 상위 계층 프로토콜의 자산도 영향을 받을 수 있습니다.

여기에서 Cobo 블록체인 보안 팀은 투자자들에게 새로운 프로젝트의 위험에 주의를 기울이도록 상기시키는 동시에 LayerZero 프로젝트 당사자에게 계약 코드에 대한 심층 감사를 수행하고 현재 EOA 제어 권한을 이전할 것을 요청합니다. 다중 서명 또는 시간 잠금 계약을 가능한 한 빨리 공격 노출을 줄입니다.

Reference:

https://eth.wiki/fundamentals/patricia-tree

https://etherscan.io/tx/0xf4f0495bfed37d4d95b3342ead0962433c7973f240b9b0739faa91e6ccac9d40

https://www.diffchecker.com/RJdDTCx7

창작 글, 작자:Cobo Labs。전재 / 콘텐츠 제휴 / 기사 요청 연락처 report@odaily.email;违규정 전재 법률은 반드시 추궁해야 한다.

ODAILY는 많은 독자들이 정확한 화폐 관념과 투자 이념을 수립하고 블록체인을 이성적으로 바라보며 위험 의식을 확실하게 제고해 달라고 당부했다.발견된 위법 범죄 단서에 대해서는 관련 부서에 적극적으로 고발하여 반영할 수 있다.

추천 독서
편집자의 선택