Bug#541167: libc6: all DNS lookups fail when getting null responses for AAAA queries
Package: libc6
Version: 2.9-23
Severity: normal
Recently I was in a cafe (with ghod knows what brand wireless router) and
could not make any external connections with either ssh or Iceweasel. Packet
traces suggest that getaddrinfo() is failing when it gets a null response to
an AAAA query, even if a usable ipv4 address comes back in response to the
simultaneous A query. Disabling ipv6 at the application level (e.g. by the
hidden preference "network.dns.disableIPv6" in Iceweasel -- presumably this
corresponds to AF_INET instead of AF_UNSPEC in hints->ai_family) makes libc
send out only A queries, and not fail.
An alternative possibility is that the problem instead has to do with the
router glitching and returning a response to one of the AAAA queries from
the wrong IP address (as you can see in the traces). I would think that
any response from the wrong IP should be dropped on the floor immediately,
and not affect processing of other responses to the same query; otherwise
anyone with the ability to eavesdrop on DNS traffic and inject packets can
cause a denial of service.
Here's the traces. The query for "weather.noaa.gov" at the bottom happened
after I turned off IPv6 in Iceweasel. That query corresponds to a successful
HTTP connection. All other traffic corresponds to a failed SSH session -
the ssh client reported "Name or service not known."
13:56:51.148159 localwf.39054 > router.domain: 55862+ A? ssh.phx.nearlyfreespeech.net. (46)
13:56:51.148726 localwf.39054 > router.domain: 36807+ AAAA? ssh.phx.nearlyfreespeech.net. (46)
13:56:51.199915 router.domain > localwf.39054: 55862 1/0/0 ssh.phx.nearlyfreespeech.net. A 208.94.116.211 (62)
13:56:51.200026 192.168.1.254.domain > localwf.39054: 36807- 0/0/0 (46)
13:56:56.152454 localwf.39054 > router.domain: 55862+ A? ssh.phx.nearlyfreespeech.net. (46)
13:56:56.166831 router.domain > localwf.39054: 55862 1/0/0 ssh.phx.nearlyfreespeech.net. A 208.94.116.211 (62)
13:56:56.166967 localwf.39054 > router.domain: 36807+ AAAA? ssh.phx.nearlyfreespeech.net. (46)
13:56:56.179970 router.domain > localwf.39054: 36807- 0/0/0 (46)
13:56:56.180156 localwf.46773 > router.domain: 55862+ A? ssh.phx.nearlyfreespeech.net. (46)
13:56:56.196814 router.domain > localwf.46773: 55862 1/0/0 ssh.phx.nearlyfreespeech.net. A 208.94.116.211 (62)
13:56:56.196945 localwf.46773 > router.domain: 36807+ AAAA? ssh.phx.nearlyfreespeech.net. (46)
13:56:56.211236 router.domain > localwf.46773: 36807- 0/0/0 (46)
13:57:27.972080 localwf.59196 > router.domain: 57109+ A? weather.noaa.gov. (34)
13:57:27.985029 router.domain > localwf.59196: 57109 1/0/0 weather.noaa.gov. A 140.90.128.70 (50)
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.30-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages libc6 depends on:
ii libgcc1 1:4.4.1-1 GCC support library
libc6 recommends no packages.
Versions of packages libc6 suggests:
pn glibc-doc <none> (no description available)
ii locales 2.9-23 GNU C Library: National Language (
-- debconf information:
glibc/upgrade: true
glibc/disable-screensaver:
glibc/restart-failed:
glibc/restart-services:
Reply to: