diff options
author | Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk> | 2017-08-29 14:29:18 +0100 |
---|---|---|
committer | John Crispin <john@phrozen.org> | 2017-08-30 17:05:10 +0200 |
commit | ca7933730681bf3a42261fdf045dc1d929cbee48 (patch) | |
tree | e244e7f4dce068a1798c4a3a47783d5c9d16c608 /target/linux/gemini | |
parent | 97a6ef513f45b40c635159c9b4b88f3eaa1498d2 (diff) | |
download | upstream-ca7933730681bf3a42261fdf045dc1d929cbee48.tar.gz upstream-ca7933730681bf3a42261fdf045dc1d929cbee48.tar.bz2 upstream-ca7933730681bf3a42261fdf045dc1d929cbee48.zip |
dnsmasq: forward.c: fix CVE-2017-13704
Fix SIGSEGV in rfc1035.c answer_request() line 1228 where memset()
is called with header & limit pointing at the same address and thus
tries to clear memory from before the buffer begins.
answer_request() is called with an invalid edns packet size provided by
the client. Ensure the udp_size provided by the client is bounded by
512 and configured maximum as per RFC 6891 6.2.3 "Values lower than 512
MUST be treated as equal to 512"
The client that exposed the problem provided a payload udp size of 0.
Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
Acked-by: Hans Dedecker <dedeckeh@gmail.com>
Diffstat (limited to 'target/linux/gemini')
0 files changed, 0 insertions, 0 deletions