Your message dated Mon, 29 May 2017 16:02:39 +0000
with message-id <[email protected]>
and subject line unblock mosquitto
has caused the Debian Bug report #863633,
regarding unblock: mosquitto/1.4.10-3
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
863633: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863633
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: [email protected]
Usertags: unblock
Please unblock package mosquitto
Version 1.4.10-2 currently in testing has a security issue
CVE-2017-7650. This upload fixes that issue.
This upload also fixes #857759, which is a regression against Jessie.
unblock mosquitto/1.4.10-3
-- System Information:
Debian Release: stretch/sid
APT prefers xenial-updates
APT policy: (500, 'xenial-updates'), (500, 'xenial-security'), (500,
'xenial'), (100, 'xenial-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.4.0-71-generic (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Init: systemd (via /run/systemd/system)
*** /home/roger/mosquitto.debdiff
diff -Nru mosquitto-1.4.10/debian/changelog mosquitto-1.4.10/debian/changelog
--- mosquitto-1.4.10/debian/changelog 2016-11-03 22:38:51.000000000 +0000
+++ mosquitto-1.4.10/debian/changelog 2017-05-29 14:38:36.000000000 +0100
@@ -1,3 +1,16 @@
+mosquitto (1.4.10-3) unstable; urgency=high
+
+ * SECURITY UPDATE: Pattern ACL can be bypassed by using a username/client id
+ set to '+' or '#'.
+ - debian/patches/mosquitto-0.15_cve-2017-7650.patch: Reject send/receive
+ of messages to/from clients with a '+', '#' or '/' in their
+ username/client id.
+ - CVE-2017-7650
+ * New patch debian/patches/allow_ipv6_bridges.patch allows bridges to make
+ IPv6 connections when using TLS (closes: #857759).
+
+ -- Roger A. Light <[email protected]> Mon, 29 May 2017 13:43:29 +0100
+
mosquitto (1.4.10-2) unstable; urgency=medium
* Bumped standards version to 3.9.8. No changes needed.
diff -Nru mosquitto-1.4.10/debian/patches/allow_ipv6_bridges.patch
mosquitto-1.4.10/debian/patches/allow_ipv6_bridges.patch
--- mosquitto-1.4.10/debian/patches/allow_ipv6_bridges.patch 1970-01-01
01:00:00.000000000 +0100
+++ mosquitto-1.4.10/debian/patches/allow_ipv6_bridges.patch 2017-05-29
13:50:12.000000000 +0100
@@ -0,0 +1,22 @@
+Description: Allow bridges to make IPv6 connections when using TLS.
+Author: Roger Light <[email protected]>
+Forwarded: not-needed
+Origin: upstream,
https://github.com/eclipse/mosquitto/commit/98ea68490626b1d18aee2004b411294c85e62212
+--- a/lib/net_mosq.c
++++ b/lib/net_mosq.c
+@@ -281,14 +281,7 @@
+
+ *sock = INVALID_SOCKET;
+ memset(&hints, 0, sizeof(struct addrinfo));
+-#ifdef WITH_TLS
+- if(mosq->tls_cafile || mosq->tls_capath || mosq->tls_psk){
+- hints.ai_family = PF_INET;
+- }else
+-#endif
+- {
+- hints.ai_family = PF_UNSPEC;
+- }
++ hints.ai_family = PF_UNSPEC;
+ hints.ai_flags = AI_ADDRCONFIG;
+ hints.ai_socktype = SOCK_STREAM;
+
diff -Nru mosquitto-1.4.10/debian/patches/mosquitto-1.4.10_cve-2017-7650.patch
mosquitto-1.4.10/debian/patches/mosquitto-1.4.10_cve-2017-7650.patch
--- mosquitto-1.4.10/debian/patches/mosquitto-1.4.10_cve-2017-7650.patch
1970-01-01 01:00:00.000000000 +0100
+++ mosquitto-1.4.10/debian/patches/mosquitto-1.4.10_cve-2017-7650.patch
2017-05-28 23:10:06.000000000 +0100
@@ -0,0 +1,61 @@
+Description: Fix for CVE-207-7650.
+Author: Roger Light <[email protected]>
+Forwarded: not-needed
+Origin: upstream,
https://mosquitto.org/files/cve/2017-7650/mosquitto-1.4.x_cve-2017-7650.patch
+diff --git a/src/security.c b/src/security.c
+index 6ae9fb9..37ce32b 100644
+--- src/security.c
++++ b/src/security.c
+@@ -233,6 +233,21 @@
+ {
+ username = context->username;
+ }
++
++ /* Check whether the client id or username contains a +, # or /
and if
++ * so deny access.
++ *
++ * Do this check for every message regardless, we have to
protect the
++ * plugins against possible pattern based attacks.
++ */
++ if(username && strpbrk(username, "+#/")){
++ _mosquitto_log_printf(NULL, MOSQ_LOG_NOTICE, "ACL
denying access to client with dangerous username \"%s\"", username);
++ return MOSQ_ERR_ACL_DENIED;
++ }
++ if(context->id && strpbrk(context->id, "+#/")){
++ _mosquitto_log_printf(NULL, MOSQ_LOG_NOTICE, "ACL
denying access to client with dangerous client id \"%s\"", context->id);
++ return MOSQ_ERR_ACL_DENIED;
++ }
+ return db->auth_plugin.acl_check(db->auth_plugin.user_data,
context->id, username, topic, access);
+ }
+ }
+diff --git a/src/security_default.c b/src/security_default.c
+index 64ca846..a41c21f 100644
+--- src/security_default.c
++++ b/src/security_default.c
+@@ -261,6 +261,26 @@ int mosquitto_acl_check_default(struct mosquitto_db *db,
struct mosquitto *conte
+ }
+
+ acl_root = db->acl_patterns;
++
++ if(acl_root){
++ /* We are using pattern based acls. Check whether the username
or
++ * client id contains a +, # or / and if so deny access.
++ *
++ * Without this, a malicious client may configure its
username/client
++ * id to bypass ACL checks (or have a username/client id that
cannot
++ * publish or receive messages to its own place in the
hierarchy).
++ */
++ if(context->username && strpbrk(context->username, "+#/")){
++ _mosquitto_log_printf(NULL, MOSQ_LOG_NOTICE, "ACL
denying access to client with dangerous username \"%s\"", context->username);
++ return MOSQ_ERR_ACL_DENIED;
++ }
++
++ if(context->id && strpbrk(context->id, "+#/")){
++ _mosquitto_log_printf(NULL, MOSQ_LOG_NOTICE, "ACL
denying access to client with dangerous client id \"%s\"", context->id);
++ return MOSQ_ERR_ACL_DENIED;
++ }
++ }
++
+ /* Loop through all pattern ACLs. */
+ clen = strlen(context->id);
+ while(acl_root){
diff -Nru mosquitto-1.4.10/debian/patches/series
mosquitto-1.4.10/debian/patches/series
--- mosquitto-1.4.10/debian/patches/series 2016-11-03 22:36:53.000000000
+0000
+++ mosquitto-1.4.10/debian/patches/series 2017-05-29 13:47:08.000000000
+0100
@@ -6,3 +6,5 @@
libdir.patch
build-timestamp.patch
hurd-errno.patch
+mosquitto-1.4.10_cve-2017-7650.patch
+allow_ipv6_bridges.patch
--- End Message ---
--- Begin Message ---
Unblocked.
--- End Message ---