CVE-2022-29219 in Lodestar
Tóm tắt
Bởi VulDB • 06/06/2026
Lodestar là một triển khai bằng TypeScript của đặc tả Ethereum Consensus. Trước phiên bản 0.36.0, có khả năng xảy ra sự phân mảnh đồng thuận (consensus split) khi các đối tượng `AttesterSlashing` hoặc `ProposerSlashing` được tạo độc hại được đưa vào chuỗi khối. Do các nhà phát triển biểu diễn giá trị `uint64` dưới dạng số nguyên JavaScript (`number`) bản địa, sẽ xảy ra vấn đề khi những biến có giá trị `uint64` lớn (lớn hơn 2^53) được đưa lên链. Trong những trường hợp đó, Lodestar có thể coi các đối tượng `AttesterSlashing` hoặc `ProposerSlashing` hợp lệ là không hợp lệ do lỗi làm tròn trong các giá trị số nguyên (`number`) lớn. Điều này gây ra sự phân mảnh đồng thuận, khiến các nút Lodestar bị tách nhánh khỏi mạng chính. Tương tự, Lodestar có thể coi một đối tượng `ProposerSlashing` không hợp lệ là hợp lệ, từ đó đưa vào các khối đề xuất mà sau đó sẽ bị mạng xem là không hợp lệ. Phiên bản 0.36.0 chứa bản sửa lỗi cho vấn đề này. Như một giải pháp tạm thời (workaround), hãy sử dụng `BigInt` để biểu diễn giá trị của `Slot` và `Epoch` trong các đối tượng `AttesterSlashing` và `ProposerSlashing`. Vì `BigInt` quá chậm nên không thể dùng cho mọi trường hợp liên quan đến `Slot` và `Epoch`, người dùng có thể cân nhắc sử dụng `BigInt` một cách thận trọng chỉ ở những nơi cần thiết để đảm bảo đồng thuận.
VulDB is the best source for vulnerability data and more expert information about this specific topic.