-----BEGIN PGP SIGNED MESSAGE-----
FreeBSD-SA-01:29 Security Advisory
Topic: rwhod allows remote denial of service
Credits: Mark Huizer <email@example.com>
Affects: All released versions of FreeBSD 3.x, 4.x.
FreeBSD 3.5-STABLE prior to the correction date.
FreeBSD 4.2-STABLE prior to the correction date.
Corrected: 2000-12-23 (FreeBSD 3.5-STABLE)
2000-12-22 (FreeBSD 4.2-STABLE)
FreeBSD only: NO
rwhod(8) is a server which implements the rwho protocol, which
communicates information on system uptime and logged-in users between
machines on a network.
II. Problem Description
Malformed packets sent to the rwhod daemon could cause it to crash,
thereby denying service to clients if rwhod is not run under a
watchdog process which causes it to automatically restart in the event
of a failure. The rwhod daemon is not run in this way in the default
invocation from /etc/rc.conf using the rwhod_enable variable.
All versions of FreeBSD 3.x and 4.x prior to the correction date
including 3.5.1-RELEASE and 4.2-RELEASE are vulnerable to this
problem, if they have been configued to run rwhod (this is not enabled
Remote users can cause the rwhod daemon to crash, denying service to
Implement packet filtering at perimeter firewalls or on the local
machine using ipfw(8)/ipf(8) to prevent untrusted users from
connecting to the rwhod service. The rwhod daemon listens on UDP port
513 by default.
Upgrade your vulnerable FreeBSD system to 3.5-STABLE or 4.2-STABLE
after the respective correction dates.
To patch your present system: download the relevant patch from the
below location, and execute the following commands as root:
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-01:29/rwhod.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-01:29/rwhod.patch.asc
This patch has been verified to apply to FreeBSD 4.2-RELEASE and
FreeBSD 3.5.1-RELEASE. It may or may not apply to older releases.
Verify the detached PGP signature using your PGP utility.
# cd /usr/src/usr.sbin/rwhod
# patch -p < /path/to/patch
# make depend && make all install
Kill and restart rwhod to cause the changes to take effect. If you
have started rwhod with non-standard options (e.g. by setting
rwhod_flags in /etc/rc.conf) then the below command will need to be
# killall -KILL rwhod
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.4 (FreeBSD)
Comment: For info see http://www.gnupg.org
-----END PGP SIGNATURE-----