🔍 CVE-2025-47285

0.0
CVSS Score
UNKNOWN
2025-05-15
2026-04-15 00:35
✅ 완료

🇰🇷 한글 설명

Vyper 프로그래밍 언어의 concat() 함수에서 길이가 0인 인자의 부작용(side effects)을 건너뛰는 취약점입니다. v0.3.8 이상에서 삼항 연산자를 통해 부작용이 있는 0바이트 문자열을 생성할 때 발생하며, v0.4.2에서 패치됩니다.

💡 쉬운 설명

Vyper 블록체인 프로그래밍 언어에서 concat() 함수가 빈 바이트 문자열을 처리할 때 실행되어야 하는 코드를 건너뛸 수 있습니다. 특정 상황에서만 발생하며 버전 업그레이드로 해결됩니다.

🇺🇸 원문 (English)

Vyper is the Pythonic Programming Language for the Ethereum Virtual Machine. In versions up to and including 0.4.2rc1, `concat()` may skip evaluation of side effects when the length of an argument is zero. This is due to a fastpath in the implementation which skips evaluation of argument expressions when their length is zero. In practice, it would be very unusual in user code to construct zero-length bytestrings using an expression with side-effects, since zero-length bytestrings are typically constructed with the empty literal `b""`; the only way to construct an empty bytestring which has side effects would be with the ternary operator introduced in v0.3.8, e.g. `b"" if self.do_some_side_effect() else b""`. The fix is available in pull request 4644 and expected to be part of the 0.4.2 release. As a workaround, don't have side effects in expressions which construct zero-length bytestrings.

📍 영향받는 시스템

Vyper v0.4.2rc1 이하 (특히 v0.3.8 이상에서 삼항 연산자 사용 시)

⚔️ 공격 벡터

concat() 함수 인자로 부작용을 포함한 0바이트 바이트 문자열 표현식 전달

🛡️ 대응 방법

Vyper를 v0.4.2 이상으로 업그레이드하거나 0바이트 문자열 생성 표현식에서 부작용 제거

🔧 검증 코드

Version 필드가 0.4.2 이상이면 취약점이 패치된 버전입니다.

Shell / Script
python -m pip show vyper | grep Version

💻 영향받는 소프트웨어

Python