Forum OpenACS Development: New DNS bug: make sure your server is running djbdns

If this hasn't been discussed here this month, just a heads up.

A DNS bug was discovered last month that affected the BIND client and server. Yesterday the exploit was published and unpatched software is easy to detect remotely.

I think the installation instructions for OpenACS used to include installing djbdns to replace the bind software, and it might still. Djbdns is not vulnerable to this bug, but it might be worth checking any OpenACS servers running either a DNS server _or_ client.

The safest way to ensure client DNS queries are safe is to run djbdns' dnscache on 127.0.0.1, and use the following line as your /etc/resolv.conf:

nameserver 127.0.0.1

Here is a description of the bug/issue and a list of systems/software with vulnerability information:

The fix appears to be adding port randomization. Dan Bernstein notified BIND of this problem in 2001:

NNTP-Posting-Date: 29 Jul 2001 14:14:25 GMT



Jim Reid writes:
> Wrong. From setup_lookup():
> lookup->sendmsg->id = (unsigned short)(random() & 0xFFFF);

Wrong. I said ``cryptographic randomization.'' The output of random() is
not cryptographically secure. In fact, it is quite easily predictable.
This is a standard exercise in first-semester cryptography courses.


> Randomising the port number for each query achieves precisely nothing.

Wrong. Randomizing the port number makes a huge difference in the cost
of a forgery for blind attackers---i.e., most attackers on the Internet.
Here's the picture:

                     normal         colliding      sniffing
                     blind attack   blind attack   attack
                     ------------   ------------   --------
   nothing           1              1              1
   ID (BIND)         65536          256            1
   ID+port (djbdns)  4227727360     65020          1

It's funny that the BIND company has gone to so much effort to move from
the first line to the second, but now pooh-poohs the third line.

> > Wrong. As discussed in http://cr.yp.to/djbdns/forgery.html, the
> > current reality is that DNSSEC does nothing to prevent forgeries.
> Really? When were RSA and DSA broken?

Do you think that ``RSA'' is a magic word that makes security problems
disappear? Withotu a central key distribution system---a system that
doesn't exist now and won't exist for the foreseeable future---DNSSEC
doesn't stop forgeries.

Hey! Seven years isn't so bad, but don't put too much faith in the BIND patch fixing the issue, read it and the above NNTP posting together, the chance that they got the cryptographic randomization correct is pretty low.