CVE-2025-27104 in Vyper정보

요약

\~에 의해 VulDB • 2026. 06. 06.

vyper는 EVM을 위한 Pythonic한 스마트 계약 언어입니다. `for` 루프의 반복자 대상에서 단일 표현식이 여러 번 평가될 수 있습니다. 반복자 표현식은 여러 개의 쓰기를 생성할 수는 없지만, 루프 본문에서 생성된 사이드 이펙트를 소비(예: 루프 본문에서 업데이트된 스토리지 변수 읽기)하여 예기치 않은 프로그램 동작을 초래할 수 있습니다. 구체적으로, `ifexp`를 포함하는 반복자의 읽기 작업(`for s: uint256 in ([read(), read()] if True else [])` 등)은 루프 본문 내의 쓰기 작업과 교차될 수 있습니다. Vyper의 `for` 루프는 두 가지 유형의 반복자 대상을 허용합니다. 즉, `range()` 빌트인 함수와 SArray 및 DArray와 같은 iterable 타입입니다. 코드 생성 단계에서 iterable 목록은 사이드 이펙트를 생성하지 않아야 합니다(다음 코드에서 `range_scope`는 `iter_list`가 상수 컨텍스트에서 구문 분석되도록 강제하며, 이는 `is_constant`에 대해 검사됩니다). 그러나 이것은 반복자가 루프 본문이 제공하는 사이드 이펙트를 소비하는 것을 방지하지 않습니다. 반면 SArray의 경우 `iter_list`는 `repeat` ir의 본문 내에서 인스턴스화되므로 여러 번 평가될 수 있습니다. 이 문제는 해결 중이며 버전 0.4.1에서 사용 가능할 것으로 예상됩니다. 패치가 적용된 릴리스가 출시되면 즉시 업그레이드하는 것이 좋습니다. 이 취약성에 대한 알려진 우회 방법은 없습니다.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

책임이 있는

GitHub M

예약하다

2025. 02. 18.

모더레이션

수락

항목

VDB-296512

EPSS

0.00438

출처

Want to stay up to date on a daily basis?

Enable the mail alert feature now!