📢 대니월드 공식 홈페이지가 'TradingRoom'으로 변경되었습니다
모든 최신 시황과 교육 자료를 가장 빠르게 받는 방법!
지금 아래 버튼을 클릭해 이메일 구독을 완료해 주세요.
데이터 위치 혼동 취약점
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
댓글