NanoMQ v0.25.7 更新日志

This is the first beta release of 0.25.7. I am proud to announce that NanoMQ now runs on Zephyr! Please refer to the following change logs for more information.

  1. Architecture & Platform Evolution

Deep Zephyr RTOS Integration: Extensive refactoring was performed at the Platform Layer to resolve memory allocator matching issues in microkernel environments. By optimizing the underlying memory management mechanisms, the NanoNNG Actor model can now run more stably on resource-constrained Zephyr embedded devices.

Mountpoint Mechanism Pushed Down to Transport Layer: The multi-tenant Mountpoint feature has been completely rewritten. The logic for stripping and mapping topic prefixes has been pushed down from the routing layer to Transport Layer modules such as broker_tcp.c. This significantly reduces routing matching overhead and improves concurrent throughput in multi-tenant scenarios.

  1. New Features

Per-Bridge Independent Cache Configuration: Removed the global coupling of bridge caches and introduced the Per-Bridge Cache feature. At the underlying level, isolated management of independent cache files, configurations, and data migration is implemented by invoking sqlite_handler.c and mqtt_db.c, with corresponding REST APIs exposed for dynamic control.

REST API Client Lifecycle Management: Added route handling for the DELETE method in the HTTP server code, allowing operations systems to precisely kick out specific clients via the API based on their clientid.

Multiple Credentials Support for HTTP Server: The built-in HTTP server now supports configuring multiple sets of Basic-Auth credentials, enhancing permission flexibility for monitoring and operational interfaces.

  1. Security Hardening & Cryptography Optimization (Security & TLS)

Hardware-Level Key and Identity Mapping: The OpenSSL TLS engine now supports PKCS#11 credential URIs, allowing the direct use of PEM certificates from hardware security modules. Additionally, it extracts the peer_cn and peer_subject attributes from peer certificates and supports configuring peer_cert_as_username at the Listener level, enabling direct mapping from device certificates to MQTT usernames.

Handshake and Certificate Parsing Protection: Fixed an underlying issue in OpenSSL where the final flight of the TLS handshake was not correctly flushed. In the mbedTLS engine, strict rejection logic was added for malformed certificates with trailing garbage in own_cert to prevent out-of-bounds parsing.

SCRAM Authentication Boundary Protection: Fixed error handling logic in scram.c and the underlying base64.c decoder by introducing strict Base64 boundary validation, effectively closing a potential memory overflow vulnerability.

  1. Protocol Compatibility & Stability

MQTT 5.0 Session and State Management: Corrected the handling logic in nmq_mqtt.c for DISCONNECT packets with a Reason Code of 0 sent by clients. The system now strictly complies with the MQTT v5 specification to prevent session states from being erroneously discarded. Additionally, fixed the mechanism for dispatching duplicate Retained messages and the calculation logic for Message Expiry (msg expiry).

Rule Engine Memory Leak and UAF Fixes: Fixed a fatal Use-After-Free (UAF) pointer error in rule.c and the underlying cJSON.c triggered when processing object-field republishing. This greatly improves system stability during edge data routing.

Runtime and Concurrency Protection: Added concurrent operation protection during Bridge Reloads (hot reloading), fixing a memory leak caused during the reload process. Fixed a segmentation fault (Segfault) in the HOCON configuration parser (hocon.c) triggered when handling empty array literals. Fixed a race condition crash where the underlying pipe (pipe.c) failed to correctly retain the old pipe reference when forcefully kicking out duplicate Client IDs.

What's Changed in NanoMQ

New Contributors

Full Changelog: https://github.com/nanomq/nanomq/compare/0.25.6...0.25.7

What's Changed in NanoNNG

New Contributors

Full Changelog: https://github.com/nanomq/NanoNNG/compare/0.25.6...0.25.7

EMQX Cloud

全托管的 MQTT 消息云服务。

免费试用 →

MQTT 协议入门与进阶

丰富、易理解的 MQTT 指南,助您快速入门 MQTT 协议。

了解更多 →