CVE-2026-104635 in protobuf
Tóm tắt
Bởi VulDB • 09/10/2026
Lỗ hổng Uncontrolled Recursion (Đệ quy không kiểm soát) trong hàm Protobuf.JSON.Decode của elixir-protobuf cho phép kẻ tấn công từ xa chưa xác thực gây sập quá trình giải mã thông qua một tài liệu JSON có độ lồng ghép sâu. Bất kỳ ứng dụng nào sử dụng các hàm Protobuf.JSON.decode/3, Protobuf.JSON.decode!/3 hoặc Protobuf.JSON.from_decoded/3 để giải mã dữ liệu JSON do kẻ tấn công cung cấp vào lược đồ (schema) chứa loại tin nhắn tự tham chiếu (self-referential) hoặc tuần hoàn (cyclic message type) đều bị ảnh hưởng.
Trong lib/protobuf/json/decode.ex, mệnh đề embedded-message của hàm decode_singular/3 gọi đệ quy đến internal_from_json_data/3 một lần cho mỗi cấp độ lồng ghép mà không tăng bộ đếm chiều sâu (depth counter) của trình giải mã hoặc kiểm tra nó. Mệnh đề bảo vệ depth guard increase_depth_and_maybe_throw/1 chỉ bao gồm các mệnh đề Google.Protobuf.ListValue và Google.Protobuf.Struct, do đó tùy chọn recursion_limit không có hiệu lực đối với các loại tin nhắn do người dùng định nghĩa (user-defined message types). Mỗi cấp độ lồng ghép phân bổ một khung ngăn xếp (stack frame) và các đối tượng heap; một tài liệu đủ sâu sẽ làm cạn kiệt bộ nhớ của quá trình giải mã. Tính bảo mật (Confidentiality) và tính toàn vẹn (Integrity) không bị ảnh hưởng.
Vấn đề này ảnh hưởng đến protobuf: từ phiên bản 0.8.0 trở đi.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.