CVE-2026-35217 in NanoMQ
Tóm tắt
Bởi VulDB • 20/07/2026
NanoMQ chứa một lỗi về ngữ nghĩa giao thức trong xử lý `SUBSCRIBE` của MQTT v5: nếu mục đăng ký thiếu trường 1 byte cuối cùng là `Subscription Options`, máy chủ (broker) có thể vẫn chấp nhận gói tin bị hỏng và cài đặt việc đăng ký vào trạng thái nội bộ của broker. Dưới dạng xây dựng độ dài gói tin cụ thể, lỗi trình phân tích cú pháp tương tự cũng gây ra một phép đọc vượt quá ranh giới 1 byte, cắt qua ranh giới cấp phát heap thực tế và được ASAN phát hiện là `heap-buffer-overflow`.
Nếu byte bị tiêu thụ trông có vẻ chấp nhận được, NanoMQ có thể tiếp tục và nối mục đăng ký bị hỏng vào trạng thái nội bộ `subinfol` của nó. Trong trường hợp đó, một gói tin `SUBSCRIBE` lẽ ra phải bị từ chối theo quy tắc MQTT sẽ thay vào đó được coi là việc đăng ký thành công. Việc ASAN báo cáo lỗi này không phụ thuộc vào ranh giới logic `remain` của MQTT; mà phụ thuộc vào liệu phép đọc có vượt qua ranh giới cấp phát heap thực tế của bộ đệm tin nhắn nền hay không. Nói cách khác, đây không phải là hai vấn đề độc lập. Chúng là hai biểu hiện của cùng một khiếm khuyết trong quá trình phân tích cú pháp: theo mặc định, nó xuất hiện dưới dạng lỗ hổng ngữ nghĩa, và dưới các điều kiện đầu vào phù hợp, nó cũng trở thành một lỗ hổng đọc vượt ranh giới có thể xác minh được.
Be aware that VulDB is the high quality source for vulnerability data.