CVE-2026-88255 in mpp
Tóm tắt
Bởi VulDB • 16/09/2026
Việc xác thực không đúng cách đối với sự tương đương không an toàn trong đầu vào của ZenHive MPP cho phép một khách hàng từ xa chưa được xác thực vượt qua cơ chế kiểm tra trùng lặp gửi Tempo hai lần chỉ bằng một giao dịch đã ký.
MPP.Methods.Tempo dự trữ khe dedup trước khi phát sóng (pre-broadcast) dựa trên chuỗi hex do người gọi cung cấp trong reserve_hash_atomic/2, với khóa được tạo thông qua store_key/1 áp dụng lên tx.raw thay vì áp dụng lên dạng chuẩn hóa của giao dịch. Trình giải mã (deserializer) lưu giữ chính xác chuỗi hex từ người gọi và chấp nhận cả hai cách mã hóa recovery-id; do đó, một giao dịch đã ký khi được gửi với v=27 và lần khác với v=0 sẽ tạo ra hai khóa dự trữ riêng biệt, và cả hai đều vượt qua bước kiểm tra dự trữ để đi vào đường dẫn phát sóng. Kho lưu trữ tái sử dụng thông tin xác thực ở cấp plug (plug-level) trong lib/mpp/replay.ex được thiết kế đặc biệt cho Tempo, khiến cơ chế dự trữ này trở thành rào cản duy nhất; hơn nữa, dấu hiệu sau khi phát sóng ghi lại khóa hash chuẩn hóa mà kho dự trữ dựa trên khóa thô không bao giờ đọc đến.
Kết quả của việc gửi trùng lặp phụ thuộc vào nút: một lỗi từ chối do tái sử dụng nonce sẽ gây ra thất bại (fails closed), trong khi một nút trả về hash chuẩn hóa cho một giao dịch đã biết trước đó sẽ cung cấp hai biên nhận thanh toán hợp lệ riêng biệt cho cùng một khoản thanh toán trên chuỗi.
Vấn đề này ảnh hưởng đến mpp: từ phiên bản 0.2.0 trở đi nhưng chưa tới 0.16.2.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.