patches for easier mirroring, to eliminate a special copy, to make www.freebsd.org/security a full copy of security.freebsd.org and be eventually be the same. For now files are just sitting there. The symlinks are missing. Discussed on: www (repository location) Discussed with: simon (so)
144 lines
5 KiB
Text
144 lines
5 KiB
Text
-----BEGIN PGP SIGNED MESSAGE-----
|
|
|
|
=============================================================================
|
|
FreeBSD-SA-96:12 Security Advisory
|
|
FreeBSD, Inc.
|
|
|
|
Topic: security compromise from perl (suidperl) utility
|
|
|
|
Category: core and ports
|
|
Module: perl
|
|
Announced: 1996-06-28
|
|
Affects: FreeBSD 2.0, 2.0.5, 2.1, 2.1-stable, and 2.2-current
|
|
Corrected: 2.1-stable and 2.2-current as of 1996-06-03
|
|
FreeBSD only: no
|
|
|
|
Patches: ftp://freebsd.org/pub/CERT/patches/SA-96:12/
|
|
|
|
=============================================================================
|
|
|
|
I. Background
|
|
|
|
FreeBSD ships perl version 4 as part of the base level system,
|
|
in addition, a port for perl version 5 is also provided with
|
|
a similar vulnerability. The vulnerability is specific to the
|
|
suidperl flavors of perl installed on the system.
|
|
|
|
This problem is present in all source code and binary
|
|
distributions of FreeBSD version 2.0.5 and later released
|
|
before 1996-05-21. This problem is not present in FreeBSD
|
|
2.0 and earlier versions of FreeBSD.
|
|
|
|
II. Problem Description
|
|
|
|
The authors of perl provide a "suidperl" program for proper
|
|
processing of setuid perl scripts on systems where race
|
|
conditions where setuid scripts could be exploited to gain
|
|
unauthorized access. FreeBSD installs this suidperl program
|
|
(and a link) as part of the standard installation. However,
|
|
privilege processing done by this program does not take into
|
|
account recent functionality extensions in the seteuid/setegid
|
|
system calls.
|
|
|
|
|
|
III. Impact
|
|
|
|
This vulnerability can only be exploited by users with a valid
|
|
account on the local system to easily obtain superuser access.
|
|
|
|
This vulnerability is present on all systems with the
|
|
_POSIX_SAVED_IDS functionality extension where suidperl
|
|
has been installed.
|
|
|
|
|
|
IV. Workaround
|
|
|
|
One may simply disable the setuid bit on all copies of the setuid
|
|
version of perl. This will close the vulnerability but render
|
|
inoperable setuid perl scripts. No software currently shipping
|
|
as part of FreeBSD relies on this functionality so the impact is
|
|
only to third party software.
|
|
|
|
As root, execute the commands:
|
|
|
|
# chmod 111 /usr/bin/suidperl
|
|
# chmod 111 /usr/bin/sperl4.036
|
|
|
|
In addition, if you have installed the perl5 port:
|
|
# chmod 111 /usr/local/bin/suidperl
|
|
# chmod 111 /usr/local/bin/sperl5.001
|
|
|
|
then verify that the setuid permissions of the files have been
|
|
removed. The permissions array should read "-r-xr-xr-x" as
|
|
shown here:
|
|
|
|
# ls -l /usr/bin/s*perl*
|
|
---x--x--x 2 root bin 307200 Jun 1 17:16 /usr/bin/sperl4.036
|
|
---x--x--x 2 root bin 307200 Jun 1 17:16 /usr/bin/suidperl
|
|
|
|
and for the perl5 port:
|
|
|
|
# ls -l /usr/local/bin/s*perl*
|
|
---x--x--x 2 root bin 397312 Jan 22 15:15 /usr/local/bin/sperl5.001
|
|
---x--x--x 2 root bin 397312 Jan 22 15:15 /usr/local/bin/suidperl
|
|
|
|
|
|
V. Solution
|
|
|
|
*NOTE* A patch for perl is available directly from Larry Wall
|
|
(the author of perl) which solves this vulnerability in a
|
|
different fashion than the FreeBSD patches. You may apply
|
|
either the FreeBSD patches, or Larry's patches, or both.
|
|
The patches solve the problem via two different mechanisms.
|
|
|
|
Patches are available which eliminate this vulnerability.
|
|
The following patch should be applied to the system sources and
|
|
suidperl should be rebuilt and reinstalled.
|
|
|
|
Apply the patch, then:
|
|
# cd /usr/src/gnu/usr.bin/perl/sperl
|
|
# make depend
|
|
# make all
|
|
# make install
|
|
|
|
A similar patch is also available for the perl5 port.
|
|
Apply the following patch by moving it into the patch
|
|
directory for the port distribution and rebuilding and
|
|
installing perl5:
|
|
|
|
# cd /usr/ports/lang/perl5
|
|
# cp <location of new patches>/patch-a[ab] patches
|
|
# make all
|
|
# make install
|
|
|
|
NOTE: These patches do NOT solve the vulnerability for FreeBSD 2.0
|
|
or 2.0.5. These only solve the problem for 2.1 and later.
|
|
Patches specific to FreeBSD 2.0 and 2.0.5 are available at
|
|
the URL listed at the top of this file.
|
|
|
|
|
|
=============================================================================
|
|
FreeBSD, Inc.
|
|
|
|
Web Site: http://www.freebsd.org/
|
|
Confidential contacts: security-officer@freebsd.org
|
|
PGP Key: ftp://freebsd.org/pub/CERT/public_key.asc
|
|
Security notifications: security-notifications@freebsd.org
|
|
Security public discussion: security@freebsd.org
|
|
|
|
Notice: Any patches in this document may not apply cleanly due to
|
|
modifications caused by digital signature or mailer software.
|
|
Please reference the URL listed at the top of this document
|
|
for original copies of all patches if necessary.
|
|
=============================================================================
|
|
|
|
-----BEGIN PGP SIGNATURE-----
|
|
Version: 2.6.3ia
|
|
Charset: noconv
|
|
|
|
iQCVAwUBMdOTfFUuHi5z0oilAQEVkAP/cVHgqsW4GNpShs4RDQYvAphA31vTNiE8
|
|
vrfyjpA1GQET/KycQe0xdQWaQ7FF6FwG5ieahHFypqFN2Ze8VW10EuWN/EFhfjh5
|
|
vFnCqOW5r84DraP3ttkdR6WKyQXDwt61QBGiO7FYa03Kz29v3n9TO7W0LS+pAhB1
|
|
cZZwEwUN318=
|
|
=M6FK
|
|
-----END PGP SIGNATURE-----
|