summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2019-10-23 19:43:02 +0200
committerTobias Geerinckx-Rice <me@tobias.gr>2019-10-23 19:58:48 +0200
commit3f4ea9a62b5fa68d57724b2f83c35a191e33b7c8 (patch)
tree89c23778ff146795ad9924e8582622cc2a5f76fe /gnu/packages
parentdff0eedb04ac7c61fc1e2ddd4cd577f83f5eb89a (diff)
gnu: avahi: Fix CVE-2018-1000845 and duplicate CVE-2017-6519.
* gnu/packages/avahi.scm (avahi/fixed): New variable. (avahi)[replacement]: Use it. * gnu/packages/patches/avahi-CVE-2018-1000845.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/avahi.scm11
-rw-r--r--gnu/packages/patches/avahi-CVE-2018-1000845.patch42
2 files changed, 53 insertions, 0 deletions
diff --git a/gnu/packages/avahi.scm b/gnu/packages/avahi.scm
index e71ffc29823..408be8ed57f 100644
--- a/gnu/packages/avahi.scm
+++ b/gnu/packages/avahi.scm
@@ -35,6 +35,7 @@
35 (package 35 (package
36 (name "avahi") 36 (name "avahi")
37 (version "0.7") 37 (version "0.7")
38 (replacement avahi/fixed)
38 (home-page "http://avahi.org") 39 (home-page "http://avahi.org")
39 (source (origin 40 (source (origin
40 (method url-fetch) 41 (method url-fetch)
@@ -74,6 +75,16 @@ network. It is an implementation of the mDNS (for \"Multicast DNS\") and
74DNS-SD (for \"DNS-Based Service Discovery\") protocols.") 75DNS-SD (for \"DNS-Based Service Discovery\") protocols.")
75 (license lgpl2.1+))) 76 (license lgpl2.1+)))
76 77
78(define avahi/fixed
79 (package/inherit avahi
80 (source (origin
81 (inherit (package-source avahi))
82 (patches
83 (append (search-patches "avahi-CVE-2018-1000845.patch")
84 (origin-patches (package-source avahi))))))
85 ;; Hide a duplicate of the CVE fixed above.
86 (properties `((lint-hidden-cve . ("CVE-2017-6519"))))))
87
77(define-public nss-mdns 88(define-public nss-mdns
78 (package 89 (package
79 (name "nss-mdns") 90 (name "nss-mdns")
diff --git a/gnu/packages/patches/avahi-CVE-2018-1000845.patch b/gnu/packages/patches/avahi-CVE-2018-1000845.patch
new file mode 100644
index 00000000000..e5b13e0beec
--- /dev/null
+++ b/gnu/packages/patches/avahi-CVE-2018-1000845.patch
@@ -0,0 +1,42 @@
1From e111def44a7df4624a4aa3f85fe98054bffb6b4f Mon Sep 17 00:00:00 2001
2From: Trent Lloyd <trent@lloyd.id.au>
3Date: Sat, 22 Dec 2018 09:06:07 +0800
4Subject: [PATCH] Drop legacy unicast queries from address not on local link
5
6When handling legacy unicast queries, ensure that the source IP is
7inside a subnet on the local link, otherwise drop the packet.
8
9Fixes #145
10Fixes #203
11CVE-2017-6519
12CVE-2018-100084
13---
14 avahi-core/server.c | 8 ++++++++
15 1 file changed, 8 insertions(+)
16
17diff --git a/avahi-core/server.c b/avahi-core/server.c
18index a2cb19a8..a2580e38 100644
19--- a/avahi-core/server.c
20+++ b/avahi-core/server.c
21@@ -930,6 +930,7 @@ static void dispatch_packet(AvahiServer *s, AvahiDnsPacket *p, const AvahiAddres
22
23 if (avahi_dns_packet_is_query(p)) {
24 int legacy_unicast = 0;
25+ char t[AVAHI_ADDRESS_STR_MAX];
26
27 /* For queries EDNS0 might allow ARCOUNT != 0. We ignore the
28 * AR section completely here, so far. Until the day we add
29@@ -947,6 +948,13 @@ static void dispatch_packet(AvahiServer *s, AvahiDnsPacket *p, const AvahiAddres
30 legacy_unicast = 1;
31 }
32
33+ if (!is_mdns_mcast_address(dst_address) &&
34+ !avahi_interface_address_on_link(i, src_address)) {
35+
36+ avahi_log_debug("Received non-local unicast query from host %s on interface '%s.%i'.", avahi_address_snprint(t, sizeof(t), src_address), i->hardware->name, i->protocol);
37+ return;
38+ }
39+
40 if (legacy_unicast)
41 reflect_legacy_unicast_query_packet(s, p, i, src_address, port);
42