🇰🇷 한글 설명
Vyper는 이더리움 가상 머신을 위한 파이썬 기반 스마트 계약 언어입니다. 취약한 버전에서는 <iface>.returns_int128()의 반환값이 int128 범위 내에 있는지 검증하지 않아 정수 값이 잘못 해석될 수 있습니다. 이로 인해 스마트 계약이 의도치 않은 동작을 수행할 수 있습니다.
💡 쉬운 설명
숫자를 다루는 과정에서 정해진 범위를 넘어서는 값이 들어와도 이를 제대로 확인하지 못하는 문제입니다. 이로 인해 계산 결과가 틀려지거나 계약이 잘못 작동할 위험이 있습니다.
🇺🇸 원문 (English)
Vyper is a pythonic Smart Contract Language for the ethereum virtual machine. In affected versions, the return of `<iface>.returns_int128()` is not validated to fall within the bounds of `int128`. This issue can result in a misinterpretation of the integer value and lead to incorrect behavior. As of v0.3.0, `<iface>.returns_int128()` is validated in simple expressions, but not complex expressions. Users are advised to upgrade. There is no known workaround for this issue.
📍 영향받는 시스템
Vyper v0.3.0 미만 버전 (복잡한 표현식 사용 시)
⚔️ 공격 벡터
복잡한 표현식 내에서 int128 범위를 벗어나는 값을 반환하도록 유도하여 정수 오버플로우/언더플로우 유발
🛡️ 대응 방법
Vyper를 v0.3.0 이상 버전으로 업그레이드하십시오.
🔧 검증 코드
출력된 버전이 0.3.0 미만인 경우 해당 취약점에 노출될 가능성이 있습니다.
pip show vyper | grep Version