[Dnsmasq-discuss] CNAME buffer overflow?
Philip Le Riche
philip.leriche at virgin.net
Sun Sep 14 20:56:00 BST 2008
Recently, Steve Gibson of grc.com has been developing a DNS test page
similar to Doxpara but intended to test in much greater detail for the
Dan Kaminsky DNS vulnerability. Currently, Steve's DNS test page crashes
certain routers, in particular some by Belkin, and mine by Ozenda. It
has been suggested (no more than a suggestion:
nntp://news.grc.com/grc.news.feedback) that these routers may
incorporate dnsmasq in their firmware, which, if true, would indicate a
possible buffer overrun, albeit one that may have been fixed some time ago.
Whilst the source of dnsmasq is accessible and very modest in size, it
would take me a lot longer than someone familiar with it to check for
such a bug, hence my posting. And setting up a rig to test it out would
also take some while.
Essentially what Steve's page does (www.grc.com/dns) is to provoke a DNS
query from the user's browser for <unique_13_char_id>.dns.grc.com. When
this hits Steve's DNS server, it returns 2 resource records:
- First a CNAME record giving the primary name of the queried FQDN as
a.{repeated 95 times}.<unique_id>.dns.grc.com
- Then an A record giving an IP address for the primary name.
At this point, my router crashes, and reboots some 60 secs later,
presumably forced by a heartbeat failure. I've uploaded a Wireshark
capture of this (using a non-vulnerable router) to
www.blueskylark.org/pcap.zip
If I provoke my router simply to do a DNS query for the horribly long
primary name, I get the result I expect, namely an A record just like
the one Steve returns but giving the IP address of the OpenDNS default
page (since I'm using OpenDNS), and my router survives. I conclude
therefore that it's being killed by the CNAME record, possibly because
the primary name is being stored in a fixed length buffer.
Looking through the change log, this could be an issue fixed in 2.17
(Nov '04), and it's not implausible that my router has firmware
containing a version of dnsmasq that old.
If anyone could throw any light on this I'd be most interested.
Regards - Philip
More information about the Dnsmasq-discuss
mailing list