COMMAND
gnapster
SYSTEMS AFFECTED
Those using gnapster 1.3.8 or earlier
PROBLEM
Following is based on FreeBSD Security Report. Gnapster is a
client for the Napster file-sharing network. The gnapster port
(version 1.3.8 and earlier) contains a vulnerability which allows
remote gnapster users to view any file on the local system which
is accessible to the user running gnapster. Gnapster does not run
with elevated privileges, so it is only the user's regular
filesystem access permissions which are involved. This
vulnerability was discovered at the Center for Education and
Research in Information Assurance and Security (CERIAS) at Purdue
University by Tom Daniels, Florian Buchholz and James Early.
The gnapster 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 3200 third-party applications in a
ready-to-install format. The ports collection shipped with
FreeBSD 4.0 contains this problem since it was discovered after
the release.
Remote users can view files accessible to the user running the
gnapster client. If you have not chosen to install the gnapster
port/package, then your system is not vulnerable to this problem.
It is possible for anyone to obtain any user-readable file by
sending a properly formed "GET" command that contains the full
path of the file. This vulnerability exists because Gnapster
fails to check that the requested file is an explicitly shared
MP3 file before providing it. Anyone running Gnapster version
1.3.8 or earlier is vulnerable. Given the IP address and TCP
port of a vulnerable client, an attacker can send a request for
an arbitrary file to the Gnapster client. If the user has read
access to the file, the client will then respond with the
contents of the file.
SOLUTION
Deinstall the gnapster port/package, if you you have installed it.
Solution is one of the following:
1) Upgrade your entire ports collection and rebuild the
gnapster port.
2) Reinstall a new package dated after the correction date,
obtained from:
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/audio/gnapster-1.3.9.tgz
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/audio/gnapster-1.3.9.tgz
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/alpha/packages-4-stable/audio/gnapster-1.3.9.tgz
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/audio/gnapster-1.3.9.tgz
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/alpha/packages-5-current/audio/gnapster-1.3.9.tgz
3) download a new port skeleton for the gnapster port from:
http://www.freebsd.org/ports/
and use it to rebuild the port.
For others, go for:
http://download.sourceforge.net/gnapster/gnapster-1.3.9.tar.gz