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

[블록체인 보안] 스마트컨트랙트 취약성(storage vs memory)

by Danny_Kim 2023. 8. 24.

🔑 코인 투자 추천 링크 🔑

  1. 비트코인, 알트코인 투자 노하우 모두 공개
  2. OKX 거래소 - 20% 수수료 할인
  3. 플립스터 거래소 - USDT 15% 이자
  4. 해시키 거래소 - HSK 에어드랍

 

데이터 위치 혼동 취약점

 

updaterewardDebt 함수에서 사용자의 스토리지(storage) 및 메모리(memory) 참조를 오용함

updaterewardDebt 함수는 메모리에 저장된 UserInfo 구조체의 rewardDebt 값을 업데이트 함

이 문제는 이 값이 함수 호출간에 지속되지 않는다는 것임

함수 실행이 완료되면 메모리가 지워지고 변경 내용이 손실됨

 

보안방법.

함수 매개변수에서 메모리 및 스토리지 사용을 올바르게 확인해야 함.

모든 위치를 명시적으로 지정할것

 

테스트 소스

https://github.com/SunWeb3Sec/DeFiVulnLabs/blob/main/src/test/DataLocation.sol

 

취약성 코드

 

테스트 결과

 

 

참고문서

https://web3sec.notion.site/Data-location-storage-vs-memory-b4985ca66d1a4991a87c4a8e63522fb1

🔑 코인 투자 추천 링크 🔑

  1. 비트코인, 알트코인 투자 노하우 모두 공개
  2. OKX 거래소 - 20% 수수료 할인
  3. 플립스터 거래소 - USDT 15% 이자
  4. 해시키 거래소 - HSK 에어드랍

댓글