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
by default).

III. Impact

Remote users can cause the rwhod daemon to crash, denying service to
clients.

IV. Workaround

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.

V. Solution

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:

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
modified appropriately.