🔍 CVE-2023-37902

5.3
CVSS Score
MEDIUM
2023-07-25
2026-06-17 06:08
✅ 완료

🇰🇷 한글 설명

Vyper 0.3.10 미만 버전에서 ecrecover 프리컴파일이 서명 검증 실패 시 출력 버퍼를 채우지 않는 취약점이 발견되었습니다. 이로 인해 특정 메모리 위치에 조작된 데이터가 남아 있을 경우, 잘못된 서명이 유효한 것으로 통과될 수 있습니다.

💡 쉬운 설명

서명을 확인하는 과정에서 오류가 발생했을 때, 원래는 빈 값을 보여줘야 하는데 이전에 남아있던 가짜 데이터를 그대로 보여주는 문제입니다. 공격자가 이 점을 이용해 가짜 서명을 진짜처럼 속일 수 있습니다.

🇺🇸 원문 (English)

Vyper is a Pythonic programming language that targets the Ethereum Virtual Machine (EVM). Prior to version 0.3.10, the ecrecover precompile does not fill the output buffer if the signature does not verify. However, the ecrecover builtin will still return whatever is at memory location 0. This means that the if the compiler has been convinced to write to the 0 memory location with specially crafted data (generally, this can happen with a hashmap access or immutable read) just before the ecrecover, a signature check might pass on an invalid signature. Version 0.3.10 contains a patch for this issue.

📍 영향받는 시스템

Vyper versions prior to 0.3.10

⚔️ 공격 벡터

ecrecover 호출 직전 특정 메모리 위치(0번지)에 조작된 데이터를 배치하여 서명 검증을 우회함

🛡️ 대응 방법

Vyper를 0.3.10 이상의 버전으로 업데이트하십시오.

🔧 검증 코드

출력된 버전 번호가 0.3.10보다 낮은지 확인하십시오.

Shell / Script
python3 -c 'import vyper; print(vyper.__version__)'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N

💻 영향받는 소프트웨어

IBM Security Verify Access