FreeBSD Security Advisory FreeBSD-SA-04:09.kadmind

2004-05-06T00:00:00
ID SECURITYVULNS:DOC:6176
Type securityvulns
Reporter Securityvulns
Modified 2004-05-06T00:00:00

Description

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1

============================================================================= FreeBSD-SA-04:09.kadmind Security Advisory The FreeBSD Project

Topic: heimdal kadmind remote heap buffer overflow

Category: contrib Module: crypto_heimdal Announced: 2004-05-05 Credits: Evgeny Demidov, VulnDisco, Love Hornquist-Astrand Affects: FreeBSD 4 systems built with both Kerberos 4 and Kerberos 5. FreeBSD 5 systems prior to 5.1 built with both Kerberos 4 and Kerberos 5. Corrected: 2004-05-05 20:19:48 UTC (RELENG_4, 4.10-PRERELEASE) 2004-05-05 20:48:57 UTC (RELENG_4_10, 4.10-RELEASE-RC) 2004-05-05 20:15:56 UTC (RELENG_4_9, 4.9-RELEASE-p7) 2004-05-05 20:17:51 UTC (RELENG_4_8, 4.8-RELEASE-p20) CVE Name: CAN-2004-0434 FreeBSD only: NO

For general information regarding FreeBSD Security Advisories, including descriptions of the fields above, security branches, and the following sections, please visit <URL:http://www.freebsd.org/security/>.

I. Background

Heimdal implements the Kerberos 5 network authentication protocols. The k5admind(8) daemon provides the administrative interface to the Kerberos Key Distribution Center (KDC). In some configurations, k5admind also includes Kerberos 4 compatibility.

NOTE: FreeBSD versions prior to 5.1-RELEASE contain optional Kerberos 4 support. FreeBSD versions 5.1-RELEASE and later do not include Kerberos 4 support of any kind.

II. Problem Description

An input validation error was discovered in the k5admind code that handles the framing of Kerberos 4 compatibility administration requests. The code assumed that the length given in the framing was always two or more bytes. Smaller lengths will cause k5admind to read an arbitrary amount of data into a minimally-sized buffer on the heap.

Note that this code is not present unless k5admind has been compiled with Kerberos 4 support. This will occur if a FreeBSD system is compiled with both of the WITH_KERBEROS4 and WITH_KERBEROS5 build flags. These flags are never simultaneously set during the FreeBSD binary release process; consequently, binary installs of FreeBSD (even with Kerberos support installed) are not affected.

III. Impact

A remote attacker may send a specially formatted message to k5admind, causing it to crash or possibly resulting in arbitrary code execution.

IV. Workaround

Disable the Kerberos 4 support in k5admind by running it with the `--no-kerberos4' option.

V. Solution

Perform one of the following:

1) Upgrade your vulnerable system to 4-STABLE; or to the RELENG_4_9 or RELENG_4_8 security branch dated after the correction date.

2) To patch your present system:

The following patches have been verified to apply to FreeBSD 4.8 and 4.9.

a) Download the relevant patch from the location below, and verify the detached PGP signature using your PGP utility.

fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-04:09/kadmind.patch

fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-04:09/kadmind.patch.asc

b) Execute the following commands as root:

cd /usr/src

patch < /path/to/patch

cd /usr/src/kerberos5/tools

make obj && make depend && make

cd /usr/src/kerberos5/lib

make obj && make depend && make

cd /usr/src/kerberos5/libexec/k5admind

make obj && make depend && make all install

VI. Correction details

The following list contains the revision numbers of each file that was corrected in FreeBSD.

Branch Revision Path


RELENG_4 src/crypto/heimdal/kadmin/version4.c 1.1.1.1.2.6 RELENG_4_10 src/crypto/heimdal/kadmin/version4.c 1.1.1.1.2.5.6.1 RELENG_4_9 src/UPDATING 1.73.2.89.2.8 src/crypto/heimdal/kadmin/version4.c 1.1.1.1.2.5.4.1 src/sys/conf/newvers.sh 1.44.2.32.2.8 RELENG_4_8 src/UPDATING 1.73.2.80.2.23 src/crypto/heimdal/kadmin/version4.c 1.1.1.1.2.5.2.1 src/sys/conf/newvers.sh 1.44.2.29.2.21


-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD)

iD8DBQFAmVp/FdaIBMps37IRArWAAJ9wsAaSmpmkdisZ7dKCdUqtjzi5/ACfQx91 Rl2JAQ/JrZyoOlwYRea1SLc= =gQfq -----END PGP SIGNATURE-----