mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 18:28:25 +00:00
Security fix, CVE-2017-14493, DHCPv6 - Stack buffer overflow.
Fix stack overflow in DHCPv6 code. An attacker who can send a DHCPv6 request to dnsmasq can overflow the stack frame and crash or control dnsmasq.
This commit is contained in:
@@ -44,6 +44,14 @@ version 2.78
|
|||||||
and Kevin Hamacher of the Google Security Team for
|
and Kevin Hamacher of the Google Security Team for
|
||||||
finding this.
|
finding this.
|
||||||
|
|
||||||
|
Fix stack overflow in DHCPv6 code. An attacker who can send
|
||||||
|
a DHCPv6 request to dnsmasq can overflow the stack frame and
|
||||||
|
crash or control dnsmasq.
|
||||||
|
CVE-2017-14493 applies.
|
||||||
|
Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
|
||||||
|
and Kevin Hamacher of the Google Security Team for
|
||||||
|
finding this.
|
||||||
|
|
||||||
|
|
||||||
version 2.77
|
version 2.77
|
||||||
Generate an error when configured with a CNAME loop,
|
Generate an error when configured with a CNAME loop,
|
||||||
|
|||||||
@@ -206,6 +206,9 @@ static int dhcp6_maybe_relay(struct state *state, void *inbuff, size_t sz,
|
|||||||
/* RFC-6939 */
|
/* RFC-6939 */
|
||||||
if ((opt = opt6_find(opts, end, OPTION6_CLIENT_MAC, 3)))
|
if ((opt = opt6_find(opts, end, OPTION6_CLIENT_MAC, 3)))
|
||||||
{
|
{
|
||||||
|
if (opt6_len(opt) - 2 > DHCP_CHADDR_MAX) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
state->mac_type = opt6_uint(opt, 0, 2);
|
state->mac_type = opt6_uint(opt, 0, 2);
|
||||||
state->mac_len = opt6_len(opt) - 2;
|
state->mac_len = opt6_len(opt) - 2;
|
||||||
memcpy(&state->mac[0], opt6_ptr(opt, 2), state->mac_len);
|
memcpy(&state->mac[0], opt6_ptr(opt, 2), state->mac_len);
|
||||||
|
|||||||
Reference in New Issue
Block a user