31 lines
985 B
Diff
31 lines
985 B
Diff
|
From 24036ea507862c7b7898b68289c8130f85599c10 Mon Sep 17 00:00:00 2001
|
||
|
From: Simon Kelley <simon@thekelleys.org.uk>
|
||
|
Date: Mon, 25 Sep 2017 18:47:15 +0100
|
||
|
Subject: [PATCH 3/9] Security fix, CVE-2017-14492, DHCPv6 RA heap overflow.
|
||
|
|
||
|
Fix heap overflow in IPv6 router advertisement code.
|
||
|
This is a potentially serious security hole, as a
|
||
|
crafted RA request can overflow a buffer and crash or
|
||
|
control dnsmasq. Attacker must be on the local network.
|
||
|
---
|
||
|
src/radv.c | 3 +++
|
||
|
1 file changed, 3 insertions(+)
|
||
|
|
||
|
diff --git a/src/radv.c b/src/radv.c
|
||
|
index 1032189..9b7e52c 100644
|
||
|
--- a/src/radv.c
|
||
|
+++ b/src/radv.c
|
||
|
@@ -198,6 +198,9 @@ void icmp6_packet(time_t now)
|
||
|
/* look for link-layer address option for logging */
|
||
|
if (sz >= 16 && packet[8] == ICMP6_OPT_SOURCE_MAC && (packet[9] * 8) + 8 <= sz)
|
||
|
{
|
||
|
+ if ((packet[9] * 8 - 2) * 3 - 1 >= MAXDNAME) {
|
||
|
+ return;
|
||
|
+ }
|
||
|
print_mac(daemon->namebuff, &packet[10], (packet[9] * 8) - 2);
|
||
|
mac = daemon->namebuff;
|
||
|
}
|
||
|
--
|
||
|
2.9.5
|
||
|
|