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

[블록체인 보안] 스마트컨트랙트 취약성(Struct Deletion Oversight)

by Danny_Kim 2023. 8. 25.

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

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

구조체 삭제 간과

 

불완전한 구조체 삭제는 잔여 데이터를 남기게 됨.

매핑을 포함하는 구조체를 삭제하더라도 해당 매핑은 삭제되지 않음.

 

이 버그는 솔리디티의 delete 키워드가 스토리지를 초기 상태로 재설정하지 않고 부분적인 초기화를 수행하기 때문에 발생함.

Delete myStructs[structId]가 호출되면 이는 매핑 내의 id 만 기본값인 0으로 재설정하지만, 매핑 내의 다른 플래그는 변경되지 않음. 따라서 구조체 내부의 매핑을 삭제하지 않고 구조체를 삭제하면 남아 있는 플래그라 스토리지에 계속 남게 됨.

 

조치

버그를 수정하려면 구조체 자체를 삭제하기 전에 구조체 내부의 매핑을 삭제해야 .

 

 

테스트소스

https://github.com/SunWeb3Sec/DeFiVulnLabs/blob/main/src/test/Struct-deletion.sol

 

 

코드 취약성

 

테스트

 

참고문서

https://web3sec.notion.site/Struct-Deletion-Oversight-9b284e93d26a424f8c43d191c9a85c94

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

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

댓글