<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Eclipse Mosquitto (Posts about Releases)</title><link>https://mosquitto.org/</link><description></description><atom:link href="https://mosquitto.org/blog/categories/releases.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2026 &lt;a href="mailto:roger@atchoo.org"&gt;Mosquitto Project&lt;/a&gt; </copyright><lastBuildDate>Mon, 09 Feb 2026 11:47:01 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Version 2.1.2 released.</title><link>https://mosquitto.org/blog/2026/02/version-2-1-2-released/</link><dc:creator>Mosquitto Project</dc:creator><description>&lt;p&gt;Version 2.1.2 of Mosquitto has been released. This is a bugfix release.&lt;/p&gt;
&lt;h2 id="broker"&gt;Broker:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Forbid running with &lt;code&gt;persistence true&lt;/code&gt; and with a persistence plugin at the
  same time. Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/3480"&gt;#3480&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="build"&gt;Build:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build fixes for OpenBSD. Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/3474"&gt;#3474&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Add missing libedit to docker builds. Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/3476"&gt;#3476&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix static/shared linking of libwebsockets under cmake.&lt;/li&gt;
&lt;/ul&gt;</description><category>Releases</category><guid>https://mosquitto.org/blog/2026/02/version-2-1-2-released/</guid><pubDate>Mon, 09 Feb 2026 09:30:00 GMT</pubDate></item><item><title>Version 2.1.1 released.</title><link>https://mosquitto.org/blog/2026/02/version-2-1-1-released/</link><dc:creator>Mosquitto Project</dc:creator><description>&lt;p&gt;Version 2.1.1 of Mosquitto has been released. This is a bugfix release.&lt;/p&gt;
&lt;h2 id="broker"&gt;Broker&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix PUID/PGID checking for docker&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;MOSQUITTO_UNSAFE_ALLOW_SYMLINKS&lt;/code&gt; environment variable to allow the
  restrictions on reading files through symlinks to be lifted in safe
  environments like kubernetes. Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/3461"&gt;#3461&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix inconsistent disconnect log message format, and add address:port.&lt;/li&gt;
&lt;li&gt;Fix &lt;code&gt;plugin&lt;/code&gt;/&lt;code&gt;global_plugin&lt;/code&gt; option not allowing space characters.&lt;/li&gt;
&lt;li&gt;Fix $SYS load values not being published initially. Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/3459"&gt;#3459&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix `max_connections not being honoured on libwebsockets listeners. This does
  not affect the built-in websockets support. Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/3455"&gt;#3455&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Don't enforce receive-maximum, just log a warning. This allows badly
  behaving clients to be fixed. Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/3471"&gt;#3471&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="plugins"&gt;Plugins&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix incorrect linking of libmosquitto_common.so for the acl and password
  file plugins. Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/3460"&gt;#3460&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="build"&gt;Build&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix building with WITH_TLS=no&lt;/li&gt;
&lt;/ul&gt;</description><category>Releases</category><guid>https://mosquitto.org/blog/2026/02/version-2-1-1-released/</guid><pubDate>Wed, 04 Feb 2026 22:30:00 GMT</pubDate></item><item><title>Version 2.1.0 released.</title><link>https://mosquitto.org/blog/2026/01/version-2-1-0-released/</link><dc:creator>Mosquitto Project</dc:creator><description>&lt;p&gt;Version 2.1.0 of Mosquitto has been released. This is a feature release.&lt;/p&gt;
&lt;h2 id="broker"&gt;Broker&lt;/h2&gt;
&lt;h3 id="deprecations"&gt;Deprecations&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;acl_file&lt;/code&gt; option is deprecated in favour of the acl-file plugin, which is
  the same code but moved into a plugin. The &lt;code&gt;acl_file&lt;/code&gt; option will be removed
  in 3.0.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;password_file&lt;/code&gt; option is deprecated in favour of the password-file plugin,
  which is the same code but moved into a plugin. The &lt;code&gt;password_file&lt;/code&gt; option will
  be removed in 3.0.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;per_listener_settings&lt;/code&gt; option is deprecated in favour of the new listener
  specific options. The &lt;code&gt;per_listener_settings&lt;/code&gt; option will be removed in 3.0.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="behaviour-changes"&gt;Behaviour changes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;max_packet_size&lt;/code&gt; now defaults to 2,000,000 bytes instead of the 256MB MQTT
  limit. If you are using payloads that will result in a packet larger than
  this, you need to manually set the option to a value that suits your
  application.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;acl_file&lt;/code&gt; and &lt;code&gt;password_file&lt;/code&gt; will produce an error on invalid input when
  reloading the config, causing the broker to quit.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="protocol-related"&gt;Protocol related&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add support for broker created topic aliases. Topics are allocated on a
  first come first serve basis.&lt;/li&gt;
&lt;li&gt;Add support for bridges to allow remote brokers to create topic aliases when
  running in MQTT v5 mode.&lt;/li&gt;
&lt;li&gt;Enforce receive maximum on MQTT v5.&lt;/li&gt;
&lt;li&gt;Return protocol error if a client attemps to subscribe to a shared
  subscription and also sets no-local.&lt;/li&gt;
&lt;li&gt;Protocol version numbers reported in the log when a client connects now
  match the MQTT protocol version numbers, not internal Mosquitto values.&lt;/li&gt;
&lt;li&gt;Send DISCONNECT With session-takeover return code to MQTT v5 clients when a
  client connects with the same client id. Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/2340"&gt;#2340&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;allow_duplicate_messages&lt;/code&gt; now defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;accept_protocol_versions&lt;/code&gt; option to allow limiting which MQTT protocol
  versions are allowed for a particular listener.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="tls-related"&gt;TLS related&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;--tls-keylog&lt;/code&gt; option which can be used to generate a file that can be
  used by wireshark to decrypt TLS traffic for debugging purposes. Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/1818"&gt;#1818&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;disable_client_cert_date_checks&lt;/code&gt; option to allow expired client
  certificate to be considered valid.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;bridge_tls_use_os_certs&lt;/code&gt; option to allow bridges to be easily configured
  to trust default CA certificates. Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/2473"&gt;#2473&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Remove support for TLS v1.1 (clients only - it remains available in the
  broker but is now undocumented)&lt;/li&gt;
&lt;li&gt;Use openssl provided function for x509 certificate hostname verification,
  rather than own function.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="bridge-related"&gt;Bridge related&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;bridge_receive_maximum&lt;/code&gt; option for MQTT v5.0 bridges.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;bridge_session_expiry_interval&lt;/code&gt; option for MQTT v5.0 bridges.&lt;/li&gt;
&lt;li&gt;Bridge reconnection backoff improvements.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="transport-related"&gt;Transport related&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add the &lt;code&gt;websockets_origin&lt;/code&gt; option to allow optional enforcement of origin
  when a connection attempts an upgrade to WebSockets.&lt;/li&gt;
&lt;li&gt;Add built-in websockets support that doesn't use libwebsockets. This is the
  preferred websockets implementation.&lt;/li&gt;
&lt;li&gt;Add support for X-Forwarded-For header for built in websockets.&lt;/li&gt;
&lt;li&gt;Add suport for PROXY protocol v1 and v2.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="platform-specific"&gt;Platform specific&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Increase maximum connection count on Windows from 2048 to 8192 where
  supported. Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/2122"&gt;#2122&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Allow multiple instances of mosquitto to run as services on Windows. See
  README-windows.txt.&lt;/li&gt;
&lt;li&gt;Add kqueue support.&lt;/li&gt;
&lt;li&gt;Add support for systemd watchdog.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="general"&gt;General&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Report on what compile time options are enabled. Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/2193"&gt;#2193&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Performance: reduce memory allocations when sending packets.&lt;/li&gt;
&lt;li&gt;Log protocol version and ciphers that a client negotiates when connecting.&lt;/li&gt;
&lt;li&gt;Password salts are now 64 bytes long.&lt;/li&gt;
&lt;li&gt;Add the &lt;code&gt;global_plugin&lt;/code&gt; option, which gives global plugin loaded regardless
  of &lt;code&gt;per_listener_settings&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;global_max_clients&lt;/code&gt; option to allow limiting client sessions globally
  on the broker.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;global_max_connections&lt;/code&gt; option to allow limiting client connections globally
  on the broker.&lt;/li&gt;
&lt;li&gt;Improve idle performance. The broker now calculates when the next event of
  interest is, and uses that as the timeout for e.g. &lt;code&gt;epoll_wait()&lt;/code&gt;. This can
  reduce the number of process wakeups by 100x on an idle broker.&lt;/li&gt;
&lt;li&gt;Add more efficient keepalive check.&lt;/li&gt;
&lt;li&gt;Add support for sending the SIGRTMIN signal to trigger log rotation.
  Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/2337"&gt;#2337&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;--test-config&lt;/code&gt; option which can be used to test a configuration file
  before trying to use it in a live broker. Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/2521"&gt;#2521&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Add support for PUID/PGID environment variables for setting the user/group
  to drop privileges to. Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/2441"&gt;#2441&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Report persistence stats when starting.&lt;/li&gt;
&lt;li&gt;$SYS updates are now aligned to &lt;code&gt;sys_interval&lt;/code&gt; seconds, meaning that if set
  to 10, for example, updates will be sent at times matching x0 seconds.
  Previously update intervals were aligned to the time the broker was started.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;log_dest android&lt;/code&gt; for logging to the Android logd daemon.&lt;/li&gt;
&lt;li&gt;Fix some retained topic memory not being cleared immediately after used.&lt;/li&gt;
&lt;li&gt;Add -q option to allow logging to be disabled at the command line.&lt;/li&gt;
&lt;li&gt;Log message if a client attempts to connect with TLS to a non-TLS listener.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;listener_allow_anonymous&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;listener_auto_id_prefix&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;Allow seconds when defining &lt;code&gt;persistent_client_expiration&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="plugin-interface"&gt;Plugin interface&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;mosquitto_topic_matches_sub_with_pattern()&lt;/code&gt;, which can match against
  subscriptions with &lt;code&gt;%c&lt;/code&gt; and &lt;code&gt;%u&lt;/code&gt; patterns for client id / username
  substitution.&lt;/li&gt;
&lt;li&gt;Add support for modifying outgoing messages using &lt;code&gt;MOSQ_EVT_MESSAGE_OUT&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;mosquitto_client()&lt;/code&gt; function for retrieving a client struct if that
  client is connected.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;MOSQ_ERR_PLUGIN_IGNORE&lt;/code&gt; to allow plugins to register basic auth or acl
  check callbacks, but still act as though they are not registered. A plugin
  that wanted to act as a blocklist for certain usernames, but wasn't carrying
  out authentication could return &lt;code&gt;MOSQ_ERR_PLUGIN_IGNORE&lt;/code&gt; for usernames not on
  its blocklist. If no other plugins were configured, the client would be
  authenticated. Using &lt;code&gt;MOSQ_ERR_PLUGIN_DEFER&lt;/code&gt; instead would mean the clients
  would be denied if no other plugins were configured.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;mosquitto_client_port()&lt;/code&gt; function for plugins.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;MOSQ_EVT_CONNECT&lt;/code&gt;, to allow plugins to know when a client has
  successfully authenticated to the broker.&lt;/li&gt;
&lt;li&gt;Add connection-state example plugin to demonstrate &lt;code&gt;MOSQ_EVT_CONNECT&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;MOSQ_EVT_CLIENT_OFFLINE&lt;/code&gt;, to allow plugins to know when a client with a
  non-zero session expiry interval has gone offline.&lt;/li&gt;
&lt;li&gt;Plugins on non-Windows platforms now no longer make their symbols globally
  available, which means they are self contained.&lt;/li&gt;
&lt;li&gt;Add support for delayed basic authentication in plugins.&lt;/li&gt;
&lt;li&gt;Plugins using the &lt;code&gt;MOSQ_EVT_MESSAGE_WRITE&lt;/code&gt; callback can now return
  &lt;code&gt;MOSQ_ERR_QUOTA_EXCEEDED&lt;/code&gt; to have the message be rejected. MQTT v5 clients
  using QoS 1 or 2 will receive the quota-exceeded reason code in the
  corresponding PUBACK/PUBREC.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MOSQ_EVT_TICK&lt;/code&gt; is now passed to plugins when &lt;code&gt;per_listener_settings&lt;/code&gt; is true.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;mosquitto_sub_matches_acl()&lt;/code&gt;, which can match one topic filter (a
  subscription) against another topic filter (an ACL).&lt;/li&gt;
&lt;li&gt;Registration of the &lt;code&gt;MOSQ_EVT_CONTROL&lt;/code&gt; plugin event is now handled globally
  across the broker, so only a single plugin can register for a given $CONTROL
  topic.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;mosquitto_plugin_set_info()&lt;/code&gt; to allow plugins to tell the broker their
  name and version.&lt;/li&gt;
&lt;li&gt;Add builtin $CONTROL/broker/v1 control topic with the &lt;code&gt;listPlugins&lt;/code&gt;
  command. This is disabled by default, but can be enabled with the
  &lt;code&gt;enable_control_api&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;Plugins no longer need to define &lt;code&gt;mosquitto_plugin_cleanup()&lt;/code&gt; if they do not
  need to do any of their own cleanup. Callbacks will be unregistered
  automatically.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;mosquitto_set_clientid()&lt;/code&gt; to allow plugins to force a client id for a
  client.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;MOSQ_EVT_SUBSCRIBE&lt;/code&gt; and &lt;code&gt;MOSQ_EVT_UNSUBSCRIBE&lt;/code&gt; events that are called when
  subscribe/unsubscribes actually succeed. Allow modifying topic and qos.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;mosquitto_persistence_location()&lt;/code&gt; for plugins to use to find a valid
  location for storing persistent data.&lt;/li&gt;
&lt;li&gt;Plugins can now use the &lt;code&gt;next_s&lt;/code&gt; and &lt;code&gt;next_ms&lt;/code&gt; members of the tick event data
  struct to set a minimum interval that the broker will wait before calling the
  tick callback again.&lt;/li&gt;
&lt;li&gt;MOSQ_EVT_ACL_CHECK event is now passed message properties where possible.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="plugins"&gt;Plugins&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Add acl-file plugin.&lt;/li&gt;
&lt;li&gt;Add password-file plugin.&lt;/li&gt;
&lt;li&gt;Add persist-sqlite plugin.&lt;/li&gt;
&lt;li&gt;Add sparkplug-aware plugin.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="dynamic-security-plugin"&gt;Dynamic security plugin&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Add ability to deny wildcard subscriptions for a role to the dynsec plugin.&lt;/li&gt;
&lt;li&gt;The dynamic security plugin now only kicks clients at the start of the next
  network loop, to give chance for PUBACK/PUBREC to be sent. Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/2474"&gt;#2474&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The dynamic security plugin now reports client connections in getClient and
  listClients.&lt;/li&gt;
&lt;li&gt;The dynamic security plugin now generates an initial configuration if none
  is present, including a set of default roles.&lt;/li&gt;
&lt;li&gt;The dynamic security plugin now supports &lt;code&gt;%c&lt;/code&gt; and &lt;code&gt;%u&lt;/code&gt; patterns for
  substituting client id and username respectively, in all ACLs except for
  subscribeLiteral and unsubscribeLiteral.&lt;/li&gt;
&lt;li&gt;The dynamic security plugin now supports multiple ways to initialise the
  first configuration file.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="client-library"&gt;Client library&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;MOSQ_OPT_DISABLE_SOCKETPAIR&lt;/code&gt; to allow the disabling of the socketpair
  feature that allows the network thread to be woken from select() by another
  thread when e.g.  &lt;code&gt;mosquitto_publish()&lt;/code&gt; is called. This reduces the number of
  sockets used by each client by two.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;on_pre_connect()&lt;/code&gt; callback to allow clients to update
  username/password/TLS parameters before an automatic reconnection.&lt;/li&gt;
&lt;li&gt;Callbacks no longer block other callbacks, and can be set from within a
  callback. Closes [#2127].&lt;/li&gt;
&lt;li&gt;Add support for MQTT v5 broker to client topic aliases.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;mosquitto_topic_matches_sub_with_pattern()&lt;/code&gt;, which can match against
  subscriptions with &lt;code&gt;%c&lt;/code&gt; and &lt;code&gt;%u&lt;/code&gt; patterns for client id / username
  substitution.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;mosquitto_sub_matches_acl()&lt;/code&gt;, which can match one topic filter (a
  subscription) against another topic filter (an ACL).&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;mosquitto_sub_matches_acl_with_pattern()&lt;/code&gt;, which can match one topic
  filter (a subscription) against another topic filter (an ACL), with &lt;code&gt;%c&lt;/code&gt; and
  &lt;code&gt;%u&lt;/code&gt; patterns for client id / username substitution.&lt;/li&gt;
&lt;li&gt;Performance: reduce memory allocations when sending packets.&lt;/li&gt;
&lt;li&gt;Reintroduce threading support for Windows. Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/1509"&gt;#1509&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mosquitto_subscribe*()&lt;/code&gt; now returns &lt;code&gt;MOSQ_ERR_INVAL&lt;/code&gt; if an empty string is
  passed as a topic filter.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mosquitto_unsubscribe*()&lt;/code&gt; now returns &lt;code&gt;MOSQ_ERR_INVAL&lt;/code&gt; if an empty string is
  passed as a topic filter.&lt;/li&gt;
&lt;li&gt;Add websockets support.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mosquitto_property_read_binary/string/string_pair&lt;/code&gt; will now set the
  name/value parameter to NULL if the binary/string is empty. This aligns the
  behaviour with other property functions. Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/2648"&gt;#2648&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;mosquitto_unsubscribe2_v5_callback_set&lt;/code&gt;, which provides a callback that
  gives access to reason codes for each of the unsubscription requests.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;mosquitto_property_remove&lt;/code&gt;, for removing properties from property
  lists.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;on_ext_auth()&lt;/code&gt; callback to allow handling MQTT v5 extended authentication.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;mosquitto_ext_auth_continue()&lt;/code&gt; function to continue an MQTT v5 extended
  authentication.&lt;/li&gt;
&lt;li&gt;Remove support for TLS v1.1.&lt;/li&gt;
&lt;li&gt;Use openssl provided function for x509 certificate hostname verification,
  rather than own function.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="clients"&gt;Clients&lt;/h2&gt;
&lt;h3 id="general_1"&gt;General&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;-W&lt;/code&gt; timeout support to Windows.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;--insecure&lt;/code&gt; option now disables all server certificate verification.&lt;/li&gt;
&lt;li&gt;Add websockets support.&lt;/li&gt;
&lt;li&gt;Using &lt;code&gt;-x&lt;/code&gt; now sets the clients to use MQTT v5.0.&lt;/li&gt;
&lt;li&gt;Fix parsing of IPv6 addresses in socks proxy urls.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;--tls-keylog&lt;/code&gt; option which can be used to generate a file that can be
  used by wireshark to decrypt TLS traffic for debugging purposes.&lt;/li&gt;
&lt;li&gt;Remove support for TLS v1.1.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mosquitto_rr"&gt;mosquitto_rr&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fix &lt;code&gt;-f&lt;/code&gt; and &lt;code&gt;-s&lt;/code&gt; options in mosquitto_rr.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;--latency&lt;/code&gt; option to mosquitto_rr, for printing the request/response
  latency.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;--retain-handling&lt;/code&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mosquitto_sub"&gt;mosquitto_sub&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fix incorrect output formatting in mosquitto_sub when using field widths
  with &lt;code&gt;%x&lt;/code&gt; and &lt;code&gt;%X&lt;/code&gt; for printing the payload in hex.&lt;/li&gt;
&lt;li&gt;Add float printing option to mosquitto_sub.&lt;/li&gt;
&lt;li&gt;mosquitto_sub payload hex output can now be split by fixed field length.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;--message-rate&lt;/code&gt; option to mosquitto_sub, for printing the count of
  messages received each second.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;--retain-handling&lt;/code&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="apps"&gt;Apps&lt;/h2&gt;
&lt;h3 id="mosquitto_signal"&gt;mosquitto_signal&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;mosquitto_signal&lt;/code&gt; for helping send signals to mosquitto on Windows.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mosquitto_ctrl"&gt;mosquitto_ctrl&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add interactive shell mode to mosquitto_ctrl.&lt;/li&gt;
&lt;li&gt;Add support for &lt;code&gt;listPlugins&lt;/code&gt; to mosquitto_ctrl.&lt;/li&gt;
&lt;li&gt;Allow mosquitto_ctrl dynsec module to update passwords in files rather than
  having to connect to a broker.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mosquitto_passwd"&gt;mosquitto_passwd&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Print messages in mosquitto_passwd when adding/updating passwords.
  Closes &lt;a href="https://github.com/eclipse-mosquitto/mosquitto/issues/2544"&gt;#2544&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;When creating a new file with &lt;code&gt;-c&lt;/code&gt;, setting the output filename to a dash &lt;code&gt;-&lt;/code&gt;
  will output the result to stdout.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mosquitto_db_dump"&gt;mosquitto_db_dump&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;--json&lt;/code&gt; output mode do mosquitto_db_dump.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="build"&gt;Build&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Increased CMake minimal required version to 3.14, which is required for the
  preinstalled SQLite3 find module.&lt;/li&gt;
&lt;li&gt;Add an CMake option &lt;code&gt;WITH_LTO&lt;/code&gt; to enable/disable link time optimization.&lt;/li&gt;
&lt;li&gt;Set C99 as the explicit, rather than implicit, build standard.&lt;/li&gt;
&lt;li&gt;cJSON is now a required dependency.&lt;/li&gt;
&lt;li&gt;Refactored headers for easier discovery.&lt;/li&gt;
&lt;li&gt;Support for openssl &amp;lt; 3.0 removed.&lt;/li&gt;
&lt;/ul&gt;</description><category>Releases</category><guid>https://mosquitto.org/blog/2026/01/version-2-1-0-released/</guid><pubDate>Thu, 29 Jan 2026 16:00:00 GMT</pubDate></item><item><title>Release candidate 2.1.0rc1 available</title><link>https://mosquitto.org/blog/2026/01/rc-2.1.0rc1-available/</link><dc:creator>Mosquitto Project</dc:creator><description>&lt;p&gt;The first release candidate for Mosquitto 2.1.0 is now available for testing.
If no release critical issues are reported, this will become 2.1.0 on
2026-01-26.&lt;/p&gt;
&lt;p&gt;The source and binary packages are available:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://mosquitto.org/files/source/mosquitto-2.1.0rc1.tar.gz"&gt;Source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mosquitto.org/files/binary/win64/mosquitto-2.1.0rc1-install-windows-x64.exe"&gt;Windows 64-bit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mosquitto.org/files/binary/win32/mosquitto-2.1.0rc1-install-windows-x86.exe"&gt;Windows 32-bit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mosquitto.org/files/binary/debian"&gt;Debian (amd64, armhf)&lt;/a&gt; (note: the final release version will be available in the normal repository)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mosquitto.org/files/binary/ubuntu"&gt;Ubuntu (amd64)&lt;/a&gt; (note: the final release version will be available in the normal repository)&lt;/li&gt;
&lt;li&gt;Snap (amd64): &lt;code&gt;snap refresh --edge mosquitto&lt;/code&gt; or &lt;code&gt;snap install --edge mosquitto&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</description><category>Releases</category><guid>https://mosquitto.org/blog/2026/01/rc-2.1.0rc1-available/</guid><pubDate>Fri, 16 Jan 2026 16:21:42 GMT</pubDate></item><item><title>Version 2.0.22 released.</title><link>https://mosquitto.org/blog/2025/07/version-2-0-22-released/</link><dc:creator>Mosquitto Project</dc:creator><description>&lt;p&gt;Version 2.0.22 of Mosquitto has been released. This is a bugfix release.&lt;/p&gt;
&lt;h2 id="broker"&gt;Broker&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Windows: Fix broker crash on startup if using &lt;code&gt;log_dest stdout&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Bridge: Fix &lt;code&gt;idle_timeout&lt;/code&gt; never occurring for lazy bridges.&lt;/li&gt;
&lt;li&gt;Fix case where &lt;code&gt;max_queued_messages = 0&lt;/code&gt; was not treated as unlimited.
  Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3244"&gt;#3244&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix &lt;code&gt;--version&lt;/code&gt; exit code and output. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3267"&gt;#3267&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix crash on receiving a $CONTROL message over a bridge, if
  &lt;code&gt;per_listener_settings&lt;/code&gt; is set true and the bridge is carrying out topic
  remapping. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3261"&gt;#3261&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix incorrect reference clock being selected on startup on Linux.
  Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3238"&gt;#3238&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix reporting of client disconnections being incorrectly attributed to "out
  of memory". Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3253"&gt;#3253&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix compilation when using &lt;code&gt;WITH_OLD_KEEPALIVE&lt;/code&gt;. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3250"&gt;#3250&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Add Windows linker file for the broker to the installer. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3269"&gt;#3269&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix Websockets PING not being sent on Windows. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3272"&gt;#3272&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix problems with secure websockets. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/1211"&gt;#1211&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix crash on exit when using &lt;code&gt;WITH_EPOLL=no&lt;/code&gt;. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3302"&gt;#3302&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix clients being incorrectly expired when they have keepalive ==
  &lt;code&gt;max_keepalive&lt;/code&gt;. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3226"&gt;#3226&lt;/a&gt;, &lt;a href="https://github.com/eclipse/mosquitto/issues/3286"&gt;#3286&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="dynamic-security-plugin"&gt;Dynamic security plugin&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix mismatch memory free when saving config which caused memory tracking to
  be incorrect.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="client-library"&gt;Client library&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix C++ symbols being removed when compiled with link time optimisation.
  Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3259"&gt;#3259&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;TLS error handling was incorrectly setting a protocol error for non-TLS
  errors.  This would cause the &lt;code&gt;mosquitto_loop_start()&lt;/code&gt; thread to exit if no
  broker was available on the first connection attempt. This has been fixed.
  Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3258"&gt;#3258&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix linker errors on some architectures using cmake. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3167"&gt;#3167&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tests:
- Fix 08-ssl-connect-cert-auth-expired and 08-ssl-connect-cert-auth-revoked
  tests when running on a single CPU system. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3230"&gt;#3230&lt;/a&gt;.&lt;/p&gt;</description><category>Releases</category><guid>https://mosquitto.org/blog/2025/07/version-2-0-22-released/</guid><pubDate>Fri, 11 Jul 2025 21:40:38 GMT</pubDate></item><item><title>Version 2.0.21 released.</title><link>https://mosquitto.org/blog/2025/03/version-2-0-21-released/</link><dc:creator>Mosquitto Project</dc:creator><description>&lt;p&gt;Version 2.0.21 of Mosquitto has been released. This is a security and bugfix release.&lt;/p&gt;
&lt;p&gt;Security:
- Fix leak on malicious SUBSCRIBE by authenticated client.
  Closes [eclipse #248].
- Further fix for CVE-2023-28366.&lt;/p&gt;
&lt;h2 id="broker"&gt;Broker&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix clients sending a RESERVED packet not being quickly disconnected.
  Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/2325"&gt;#2325&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix &lt;code&gt;bind_interface&lt;/code&gt; producing an error when used with an interface that has
  an IPv6 link-local address and no other IPv6 addresses. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/2696"&gt;#2696&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix mismatched wrapped/unwrapped memory alloc/free in properties. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3192"&gt;#3192&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix &lt;code&gt;allow_anonymous false&lt;/code&gt; not being applied in local only mode. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3198"&gt;#3198&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;retain_expiry_interval&lt;/code&gt; option to fix expired retained message not
  being removed from memory if they are not subscribed to. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3221"&gt;#3221&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Produce an error if invalid combinations of cafile/capath/certfile/keyfile
  are used. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/1836"&gt;#1836&lt;/a&gt;. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3130"&gt;#3130&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Backport keepalive checking from develop to fix problems in current
  implementation. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3138"&gt;#3138&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="client-library"&gt;Client library&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix potential deadlock in mosquitto_sub if &lt;code&gt;-W&lt;/code&gt; is used. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3175"&gt;#3175&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="apps"&gt;Apps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;mosquitto_ctrl dynsec now also allows &lt;code&gt;-i&lt;/code&gt; to specify a clientid as well as
  &lt;code&gt;-c&lt;/code&gt;. This matches the documentation which states &lt;code&gt;-i&lt;/code&gt;. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3219"&gt;#3219&lt;/a&gt;.
Client library:&lt;/li&gt;
&lt;li&gt;Fix threads linking on Windows for static libmosquitto library
  Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3143"&gt;#3143&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="build"&gt;Build&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix Windows builds not having websockets enabled.&lt;/li&gt;
&lt;li&gt;Add tzdata to docker images&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="tests"&gt;Tests&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix 08-ssl-connect-cert-auth-expired and 08-ssl-connect-cert-auth-revoked
  tests when under load. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3208"&gt;#3208&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</description><category>Releases</category><guid>https://mosquitto.org/blog/2025/03/version-2-0-21-released/</guid><pubDate>Thu, 06 Mar 2025 14:53:38 GMT</pubDate></item><item><title>Version 2.0.20 released.</title><link>https://mosquitto.org/blog/2024/10/version-2-0-20-released/</link><dc:creator>Mosquitto Project</dc:creator><description>&lt;p&gt;Version 2.0.20 of Mosquitto has been released. This is a bugfix release.&lt;/p&gt;
&lt;h2 id="broker"&gt;Broker&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix QoS 1 / QoS 2 publish incorrectly returning "no subscribers".
  Closes #3128.&lt;/li&gt;
&lt;li&gt;Open files with appropriate access on Windows. Closes #3119.&lt;/li&gt;
&lt;li&gt;Don't allow invalid response topic values.&lt;/li&gt;
&lt;li&gt;Fix some strict protocol compliance issues. Closes #3052.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="client-library"&gt;Client library&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix cmake build on OS X. Closes #3125.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="build"&gt;Build&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix build on NetBSD&lt;/li&gt;
&lt;/ul&gt;</description><category>Releases</category><guid>https://mosquitto.org/blog/2024/10/version-2-0-20-released/</guid><pubDate>Wed, 16 Oct 2024 18:11:38 GMT</pubDate></item><item><title>Version 2.0.19 released.</title><link>https://mosquitto.org/blog/2024/10/version-2-0-19-released/</link><dc:creator>Mosquitto Project</dc:creator><description>&lt;p&gt;Version 2.0.19 of Mosquitto has been released. This is a security and bugfix release.&lt;/p&gt;
&lt;h2 id="security"&gt;Security&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix mismatched subscribe/unsubscribe with normal/shared topics.&lt;/li&gt;
&lt;li&gt;Fix crash on bridge using remapped topic being sent a crafted packet.&lt;/li&gt;
&lt;li&gt;Don't allow SUBACK with missing reason codes in client library.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="broker"&gt;Broker&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix assert failure when loading a persistence file that contains
  subscriptions with no client id.&lt;/li&gt;
&lt;li&gt;Fix local bridges being incorrectly expired when &lt;code&gt;persistent_client_expiration&lt;/code&gt;
  is in use.&lt;/li&gt;
&lt;li&gt;Fix use of CLOCK_BOOTTIME for getting time. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3089"&gt;#3089&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix mismatched subscribe/unsubscribe with normal/shared topics.&lt;/li&gt;
&lt;li&gt;Fix crash on bridge using remapped topic being sent a crafted packet.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="client-library"&gt;Client library&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix some error codes being converted to string as "unknown". Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/2579"&gt;#2579&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Clear SSL error state to avoid spurious error reporting. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/3054"&gt;#3054&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix "payload format invalid" not being allowed as a PUBREC reason code.&lt;/li&gt;
&lt;li&gt;Don't allow SUBACK with missing reason codes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="build"&gt;Build&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Thread support is re-enabled on Windows.&lt;/li&gt;
&lt;/ul&gt;</description><category>Releases</category><guid>https://mosquitto.org/blog/2024/10/version-2-0-19-released/</guid><pubDate>Wed, 02 Oct 2024 11:46:38 GMT</pubDate></item><item><title>Version 2.0.18 released.</title><link>https://mosquitto.org/blog/2023/09/version-2-0-18-released/</link><dc:creator>Mosquitto Project</dc:creator><description>&lt;p&gt;Version 2.0.18 of Mosquitto has been released. This is a bugfix release.&lt;/p&gt;
&lt;p&gt;Broker:
- Fix crash on subscribe under certain unlikely conditions. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/2885"&gt;#2885&lt;/a&gt;.
  Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/2881"&gt;#2881&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Clients:
- Fix mosquitto_rr not honouring &lt;code&gt;-R&lt;/code&gt;. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/2893"&gt;#2893&lt;/a&gt;.&lt;/p&gt;</description><category>Releases</category><guid>https://mosquitto.org/blog/2023/09/version-2-0-18-released/</guid><pubDate>Mon, 18 Sep 2023 23:18:38 GMT</pubDate></item><item><title>Version 2.0.16 released.</title><link>https://mosquitto.org/blog/2023/08/version-2-0-16-released/</link><dc:creator>Mosquitto Project</dc:creator><description>&lt;p&gt;Version 2.0.16 of Mosquitto has been released. This is a security
and bugfix release.&lt;/p&gt;
&lt;h2 id="security"&gt;Security&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-27366"&gt;CVE-2023-28366&lt;/a&gt;: Fix memory leak in broker when clients send multiple QoS 2
  messages with the same message ID, but then never respond to the PUBREC
  commands.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-0809"&gt;CVE-2023-0809&lt;/a&gt;: Fix excessive memory being allocated based on malicious
  initial packets that are not CONNECT packets.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-3592"&gt;CVE-2023-3592&lt;/a&gt;: Fix memory leak when clients send v5 CONNECT packets with a
  will message that contains invalid property types.&lt;/li&gt;
&lt;li&gt;Broker will now reject Will messages that attempt to publish to $CONTROL/.&lt;/li&gt;
&lt;li&gt;Broker now validates usernames provided in a TLS certificate or TLS-PSK
  identity are valid UTF-8.&lt;/li&gt;
&lt;li&gt;Fix potential crash when loading invalid persistence file.&lt;/li&gt;
&lt;li&gt;Library will no longer allow single level wildcard certificates, e.g. *.com&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="broker"&gt;Broker&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix $SYS messages being expired after 60 seconds and hence unchanged values
  disappearing.&lt;/li&gt;
&lt;li&gt;Fix some retained topic memory not being cleared immediately after used.&lt;/li&gt;
&lt;li&gt;Fix error handling related to the &lt;code&gt;bind_interface&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;Fix std* files not being redirected when daemonising, when built with
  assertions removed. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/2708"&gt;#2708&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix default settings incorrectly allowing TLS v1.1. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/2722"&gt;#2722&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Use line buffered mode for stdout. Closes #2354. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/2749"&gt;#2749&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix bridges with non-matching cleansession/local_cleansession being expired
  on start after restoring from persistence. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/2634"&gt;#2634&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix connections being limited to 2048 on Windows. The limit is now 8192,
  where supported. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/2732"&gt;#2732&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Broker will log warnings if sensitive files are world readable/writable, or
  if the owner/group is not the same as the user/group the broker is running
  as. In future versions the broker will refuse to open these files.&lt;/li&gt;
&lt;li&gt;mosquitto_memcmp_const is now more constant time.&lt;/li&gt;
&lt;li&gt;Only register with DLT if DLT logging is enabled.&lt;/li&gt;
&lt;li&gt;Fix any possible case where a json string might be incorrectly loaded. This
  could have caused a crash if a textname or textdescription field of a role was
  not a string, when loading the dynsec config from file only.&lt;/li&gt;
&lt;li&gt;Dynsec plugin will not allow duplicate clients/groups/roles when loading
  config from file, which matches the behaviour for when creating them.&lt;/li&gt;
&lt;li&gt;Fix heap overflow when reading corrupt config with "log_dest file".&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="client-library"&gt;Client library&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Use CLOCK_BOOTTIME when available, to keep track of time. This solves the
  problem of the client OS sleeping and the client hence not being able to
  calculate the actual time for keepalive purposes. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/2760"&gt;#2760&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix default settings incorrectly allowing TLS v1.1. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/2722"&gt;#2722&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Fix high CPU use on slow TLS connect. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/2794"&gt;#2794&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="clients"&gt;Clients&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix incorrect topic-alias property value in mosquitto_sub json output.&lt;/li&gt;
&lt;li&gt;Fix confusing message on TLS certificate verification. Closes &lt;a href="https://github.com/eclipse/mosquitto/issues/2746"&gt;#2746&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="apps"&gt;Apps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;mosquitto_passwd uses mkstemp() for backup files.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mosquitto_ctrl dynsec init&lt;/code&gt; will refuse to overwrite an existing file,
  without a race-condition.&lt;/li&gt;
&lt;/ul&gt;</description><category>Releases</category><guid>https://mosquitto.org/blog/2023/08/version-2-0-16-released/</guid><pubDate>Wed, 16 Aug 2023 13:57:38 GMT</pubDate></item></channel></rss>