ports/83851: Update port: dns/dnrd Security update
Natanael Copa
ncopa at users.sourceforge.net
Thu Jul 21 14:00:38 UTC 2005
>Number: 83851
>Category: ports
>Synopsis: Update port: dns/dnrd Security update
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: maintainer-update
>Submitter-Id: current-users
>Arrival-Date: Thu Jul 21 14:00:32 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator: Natanael Copa
>Release: FreeBSD 5.4-RELEASE i386
>Organization:
>Environment:
System: FreeBSD vmfreebsd.example.com 5.4-RELEASE FreeBSD 5.4-RELEASE #0: Sun May 8 10:21:06 UTC 2005 root at harlow.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
>Description:
Buffer and stack overflow in dnrd-2.19 and older.
CAN-2005-2315
CAN-2005-2316
>How-To-Repeat:
1) Buffer overflow (CAN-2005-2315)
* create a buffer, a DNS packet, bigger than 268 (256+12) bytes.
* Fill the buffer with random data.
* Clear the Z and QR flags.
* Send it to dnrd.
* Repeat til dnrd dies.
Impact : this could probably be exploited to perform remote execution.
However, dnrd runs in an chroot environment and runs as non-root.
2) Infinite recursion causes stack overflow (CAN-2005-2316)
* Create a buffer, a DNS packet.
* in the QNAME, use Message compression (see rfc 4.1.4). Set the
pointer to point on another location in the buffer.
* On this new location set another pointer to point pack to the
original QNAME location. In other words, its a circular buffer.
Dnrd will recurse until the stack is overflowed.
To reproduce #2 its important to not have any valid digits between the
loops. It must only contain pointers.
Impact : crash -> DoS
>Fix:
--- dnrd-ports-2.19-2.19.1.diff begins here ---
diff -bruN dnrd.orig/Makefile dnrd/Makefile
--- dnrd.orig/Makefile Tue Jul 19 14:04:35 2005
+++ dnrd/Makefile Tue Jul 19 14:04:52 2005
@@ -6,7 +6,7 @@
#
PORTNAME= dnrd
-PORTVERSION= 2.19
+PORTVERSION= 2.19.1
CATEGORIES= dns
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= dnrd
diff -bruN dnrd.orig/distinfo dnrd/distinfo
--- dnrd.orig/distinfo Tue Jul 19 14:04:35 2005
+++ dnrd/distinfo Thu Jul 21 15:25:47 2005
@@ -1,2 +1,2 @@
-MD5 (dnrd-2.19.tar.gz) = b8749250450f7d8de9a51af035e009eb
-SIZE (dnrd-2.19.tar.gz) = 156241
+MD5 (dnrd-2.19.1.tar.gz) = 58de30f0b09e333ca008444ca25848bc
+SIZE (dnrd-2.19.1.tar.gz) = 157686
--- dnrd-ports-2.19-2.19.1.diff ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list