🔑 코인 투자 추천 링크 🔑
데이터 위치 혼동 취약점
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
댓글