-----BEGIN PGP SIGNED MESSAGE-----

=============================================================================
FreeBSD-SA-01:56                                           Security Advisory
                                                                FreeBSD, Inc.

Topic:          tcp_wrappers PARANOID hostname checking does not work

Category:       core
Module:         tcp_wrappers
Announced:      2001-08-23
Credits:        Tony Finch <dot@dotat.at>
Affects:        FreeBSD 4.1.1-RELEASE
		FreeBSD 4.2-RELEASE
		FreeBSD 4.3-RELEASE
		FreeBSD 4.3-STABLE before the correction date
Corrected:      2001-07-04 20:18:11 UTC (FreeBSD 4.3-STABLE)
                2001-07-04 20:18:54 UTC (RELENG_4_3)
FreeBSD only:   Yes

I.   Background

FreeBSD has included Wietse Venema's tcp_wrappers since 3.2-RELEASE.
tcp_wrappers allows one to add host-based ACLs to network
applications, and additionally provides connection logging and some
detection of DNS spoofing.

II.  Problem Description

The addition of a flawed check for a numeric result during reverse DNS
lookup causes tcp_wrappers to skip some of its sanity checking of DNS
results.  These sanity checks are only enabled by the 'PARANOID' ACL
option in the configuration file, and simply weaken the 'PARANOID'
host checks to the level of assurance provided by the regular host
ACLs.

This vulnerability was corrected prior to the (forthcoming) release of
FreeBSD 4.4-RELEASE.

III. Impact

An attacker that can influence the results of reverse DNS lookups can
bypass certain tcp_wrappers PARANOID ACL restrictions by impersonating
a trusted host.  Such an attacker would need to be able to spoof
reverse DNS lookups, or more simply the attacker may be the
administrator of the DNS zone including the IP address of the remote
host.

IV.  Workaround

None.

V.   Solution

One of the following:

1) Upgrade your vulnerable FreeBSD system to 4.3-STABLE or the
RELENG_4_3 security branch after the respective correction dates.

2) FreeBSD 4.x systems prior to the correction date:

The following patche has been verified to apply to FreeBSD
4.2-RELEASE, 4.3-RELEASE and 4.3-STABLE dated prior to the correction
date.  This patch may or may not apply to older, unsupported releases
of FreeBSD.

Download the patch and the detached PGP signature from the following
locations, and verify the signature using your PGP utility.

ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-01:56/tcp_wrappers.patch
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-01:56/tcp_wrappers.patch.asc

# cd /usr/src/
# patch -p < /path/to/patch
# cd /usr/src/lib/libwrap
# make depend && make all install

One must also recompile any statically linked applications that link
against libwrap.a.  There are no such applications in the base system.

3) FreeBSD 4.3-RELEASE systems:

An experimental upgrade package is available for users who wish to
provide testing and feedback on the binary upgrade process.  This
package may be installed on FreeBSD 4.3-RELEASE systems only, and is
intended for use on systems for which source patching is not practical
or convenient.

If you use the upgrade package, feedback (positive or negative) to
security-officer@FreeBSD.org is requested so we can improve the
process for future advisories.

During the installation procedure, backup copies are made of the
files which are replaced by the package.  These backup copies will
be reinstalled if the package is removed, reverting the system to a
pre-patched state.

# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/packages/SA-01:56/security-patch-tcp_wrappers-01.56.tgz
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/packages/SA-01:56/security-patch-tcp_wrappers-01.56.tgz.asc

Verify the detached PGP signature using your PGP utility.

# pkg_add security-patch-tcp_wrappers-01.56.tgz

VI.   Correction details

The following list contains the $FreeBSD$ revision numbers of each
file that was corrected, for the supported branches of FreeBSD.  The
$FreeBSD$ revision of installed sources can be examined using the
ident(1) command.  The patch provided above does not cause these
revision numbers to be updated.

[FreeBSD 4.3-STABLE]

  Revision     Path
  1.2.2.3      src/contrib/tcp_wrappers/socket.c

[RELENG_4_3]

  Revision     Path
  1.2.2.2.2.1  src/contrib/tcp_wrappers/socket.c  

VII.  References

<URL:http://www.freebsd.org/cgi/cvsweb.cgi/src/contrib/tcp_wrappers/socket.c#rev1.6>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (FreeBSD)
Comment: For info see http://www.gnupg.org

iQCVAwUBO4VsbFUuHi5z0oilAQGSLgQAlmWnYpSy1Da8Yvs4XkpQTgN32/9aBhM0
yMM+qnd80ZYUayTNyqxKvgJDc7nROUa/qt+lWp6U1a9wuQEPX72Zq7549l8/SfuB
IkCsnwf6w8lzMCVYzTQeWm7qvf00QOWsqPCvIbw61SwPN1FfF8WLYBUCuT3hShJx
r8mBg+t55eY=
=az63
-----END PGP SIGNATURE-----
