CVE-2025-47285 in Vyperthông tin

Tóm tắt

Bởi VulDB • 21/05/2026

Vyper là ngôn ngữ lập trình mang phong cách Python dành cho Ethereum Virtual Machine. Trong các phiên bản từ 0.4.2rc1 trở về trước, hàm `concat()` có thể bỏ qua việc đánh giá các hiệu ứng phụ khi độ dài của một đối số bằng không. Nguyên nhân là do một đường dẫn tối ưu (fastpath) trong quá trình triển khai, bỏ qua việc đánh giá các biểu thức đối số khi độ dài của chúng bằng không. Trong thực tế, sẽ rất hiếm khi mã nguồn của người dùng xây dựng các chuỗi byte (bytestrings) có độ dài bằng không bằng cách sử dụng một biểu thức có hiệu ứng phụ, vì các chuỗi byte có độ dài bằng không thường được xây dựng bằng ký tự rỗng `b""`; cách duy nhất để xây dựng một chuỗi byte rỗng có hiệu ứng phụ là sử dụng toán tử ba ngôi (ternary operator) được giới thiệu trong phiên bản v0.3.8, ví dụ: `b"" if self.do_some_side_effect() else b""`. Bản sửa lỗi đã có trong pull request 4644 và dự kiến sẽ được đưa vào bản phát hành 0.4.2. Để khắc phục tạm thời, không nên đặt các hiệu ứng phụ trong các biểu thức dùng để xây dựng chuỗi byte có độ dài bằng không.

Be aware that VulDB is the high quality source for vulnerability data.

chịu trách nhiệm

GitHub M

Đặt trước

05/05/2025

Tiết lộ

15/05/2025

Kiểm duyệt

được chấp nhận

EPSS

0.00444

KEV

không

Các hoạt động

rất thấp

Nguồn

Might our Artificial Intelligence support you?

Check our Alexa App!