The rsync port, versions prior to rsync-2.5.1_1, is not careful enough
about reading integers from the network. In several places, signed and
unsigned numbers are mixed, resulting in erroneous computations of
buffer offsets.


I. Background

rsync is a powerful network file distribution/synchronization utility.

II. Problem Description

The rsync port, versions prior to rsync-2.5.1_1, is not careful enough
about reading integers from the network. In several places, signed and
unsigned numbers are mixed, resulting in erroneous computations of
buffer offsets.

The rsync port is not installed by default, nor is it "part of
FreeBSD" as such: it is part of the FreeBSD ports collection, which
contains over 6000 third-party applications in a ready-to-install
format. The ports collection shipped with FreeBSD 4.5 contains the
corrected version of this port (rsync-2.5.1_1).

FreeBSD makes no claim about the security of these third-party
applications, although an effort is underway to provide a security
audit of the most security-critical ports.

III. Impact

A remote attacker may cause rsync to write NUL bytes onto its stack.
This can be exploited in order to execute arbitrary code with the
privileges of the user running rsync. This is particularly damaging
for sites running rsync in server mode, although a hostile server may
also affect rsync clients.

IV. Workaround

1) Deinstall the rsync ports/packages if you have them installed.

V. Solution

1) Upgrade your entire ports collection and rebuild the port.

2) Deinstall the old package and install a new package dated after the
correction date, obtained from the following directories:

[i386]
ftp://ftp.FreeBSD.org/pub/FreeBSD/po...ble/net/rsync- 2.5.1_1.tgz
ftp://ftp.FreeBSD.org/pub/FreeBSD/po...ent/net/rsync- 2.5.1_1.tgz

[alpha]
Packages are not automatically generated for the alpha architecture at
this time due to lack of build resources.

NOTE: It may be several days before updated packages are available.

3) Download a new port skeleton for the rsync port from:

http://www.freebsd.org/ports/

and use it to rebuild the port.

4) Use the portcheckout utility to automate option (3) above. The
portcheckout port is available in /usr/ports/devel/portcheckout or the
package can be obtained from:

ftp://ftp.FreeBSD.org/pub/FreeBSD/po...stable/Latest/ portcheckout.tgz
ftp://ftp.FreeBSD.org/pub/FreeBSD/po...urrent/Latest/ portcheckout.tgz

VI. Correction details

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

Path Revision
- -------------------------------------------------------------------------
ports/net/rsync/Makefile 1.61
ports/net/rsync/files/patch-251-secfix 1.1
- -------------------------------------------------------------------------

VII. References



-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (FreeBSD)
Comment: For info see http://www.gnupg.org