Solidity 취약점 - Head Overflow Bug in Calldata Tuple ABI-Reencoding 번역
(app.web3oj.com)solidity v0.5.8 ~ 0.8.15 까지 존재하는 버그가 있었는데 v0.8.16에 개선되어 릴리즈 되었습니다.
핵심 부분 위주로 번역 및 정리하였고, 예제 코드도 직접 돌려보았습니다.
요약하자면 튜플에 동적 크기의 타입이 존재하고, 마지막 구성요소가 정적크기타입인 경우, ABI coder v2버전을 사용하여 컴파일 했을 때 특정부분을 0값으로 덮어 씌우는 이슈가 있었습니다.
ABI coder v2 는 0.8 버전 부터는 기본으로 사용하고 있습니다.
배포한 컨트랙트 구조가 위와 같은 취약점이 발생할수 있는 코드인지 파악하시고 개선하시면 좋을듯 싶네요.