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

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

by Danny_Kim 2023. 8. 24.

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

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

 

데이터 위치 혼동 취약점

 

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

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

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

댓글