본문 바로가기
블록체인교육/블록체인보안

[블록체인 보안] 스마트컨트랙트 취약성 Storage collision

by Danny_Kim 2023. 8. 24.

🔑 100배 수익 경험자의 노하우가 담긴 치트키 공개 🔑

  1. 네이버, 카카오 임직원들이 듣고 있는 비트코인 강의
  2. 아무도 알려주지 않은 비트코인, 이더리움의 리스크
  3. 블록체인 전문가들도 놓치기 쉬운 비트코인, 이더리움의 핵심 가치
  4. 천배 수익이 가능한 디파이(DeFi), 코인 생태계 지도
  5. 토큰 제작, 1억 연봉의 블록체인 개발자로 거듭나자!

 

테스트소스

https://github.com/SunWeb3Sec/DeFiVulnLabs/blob/main/src/test/Storage-collision.sol

 

 

스토리지 충돌 취약점

 

Proxy와 Logic 계약이 중요한 변수를 저장하는데 동일한 스토리지 슬롯(슬롯0)을 사용한다는 것

이 중요한 변수는 Proxy 계약에서 구현주소(implementation address)이며, Logic 계약에서는 GuestAddress 임.

Proxy 계약이 Logic 계약과 Delegatecall 메서드를 사용하여 상호작용하기 때문에 이들은 같은 스토리지 공간을 공유함.

Foo 함수가 호출되면 proxy 계약의 구현주소가 덮어쓰여져 예상치 못한 동작이 발생함

 

해결방법

프록시와 로직 계약의 스토리지 레이아웃을 일관되게 디자인하는 .

 

취약성 코드

 - address public implementation, address public GuestAddress 부분.

 

테스트결과

 

 

참고문서

https://web3sec.notion.site/Storage-collision-e95524065aa044ed9833c7b5ca8ae399

🔑 100배 수익 경험자의 노하우가 담긴 치트키 공개 🔑

  1. 네이버, 카카오 임직원들이 듣고 있는 비트코인 강의
  2. 아무도 알려주지 않은 비트코인, 이더리움의 리스크
  3. 블록체인 전문가들도 놓치기 쉬운 비트코인, 이더리움의 핵심 가치
  4. 천배 수익이 가능한 디파이(DeFi), 코인 생태계 지도
  5. 토큰 제작, 1억 연봉의 블록체인 개발자로 거듭나자!

댓글