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)
170 lines
6.6 KiB
Text
170 lines
6.6 KiB
Text
-----BEGIN PGP SIGNED MESSAGE-----
|
|
Hash: SHA1
|
|
|
|
=============================================================================
|
|
FreeBSD-SA-08:01.pty Security Advisory
|
|
The FreeBSD Project
|
|
|
|
Topic: pty snooping
|
|
|
|
Category: core
|
|
Module: libc_stdlib / libutil
|
|
Announced: 2008-01-14
|
|
Credits: John Baldwin
|
|
Affects: FreeBSD 5.0 and later.
|
|
Corrected: 2008-01-14 22:57:45 UTC (RELENG_7, 7.0-PRERELEASE)
|
|
2008-01-14 22:55:54 UTC (RELENG_7_0, 7.0-RC2)
|
|
2008-01-14 22:56:05 UTC (RELENG_6, 6.3-PRERELEASE)
|
|
2008-01-14 22:56:18 UTC (RELENG_6_3, 6.3-RELEASE)
|
|
2008-01-14 22:56:44 UTC (RELENG_6_2, 6.2-RELEASE-p10)
|
|
2008-01-14 22:56:56 UTC (RELENG_6_1, 6.1-RELEASE-p22)
|
|
2008-01-14 22:57:06 UTC (RELENG_5, 5.5-STABLE)
|
|
2008-01-14 22:57:19 UTC (RELENG_5_5, 5.5-RELEASE-p18)
|
|
CVE Name: CVE-2008-0216, CVE-2008-0217
|
|
|
|
For general information regarding FreeBSD Security Advisories,
|
|
including descriptions of the fields above, security branches, and the
|
|
following sections, please visit <URL:http://security.FreeBSD.org/>.
|
|
|
|
I. Background
|
|
|
|
pt_chown is a setuid root support utility used by grantpt(3) to change
|
|
ownership of a tty.
|
|
|
|
openpty(3) is a support function in libutil which is used to obtain a
|
|
pseudo-terminal.
|
|
|
|
script(1) is a utility which makes a typescript of everything printed
|
|
on a terminal.
|
|
|
|
II. Problem Description
|
|
|
|
Two issues exist in the FreeBSD pty handling.
|
|
|
|
If openpty(3) is called as non-root user the newly created
|
|
pseudo-terminal is world readable and writeable. While this is
|
|
documented to be the case, script(1) still uses openpty(3) and
|
|
script(1) may be used by non-root users [CVE-2008-0217].
|
|
|
|
The ptsname(3) function incorrectly extracts two characters from the
|
|
name of a device node in /dev without verifying that it's actually
|
|
operating on a valid pty which the calling user owns. pt_chown uses
|
|
the bad result from ptsname(3) to change ownership of a pty to the
|
|
user calling pt_chown [CVE-2008-0216].
|
|
|
|
III. Impact
|
|
|
|
If an unprivileged user is running script(1), or another program which
|
|
uses openpty(3), an attacker may snoop text which is printed to the
|
|
users terminal.
|
|
|
|
If a malicious user has read access to a device node with characters
|
|
in the device name that match the name of a pty, then the malicious user
|
|
can read the content of the pty from another user. The malicious user
|
|
can open a lot of tty's resulting in a high probabilty of a new user
|
|
obtaining the pty name of a "vulnerable" pty.
|
|
|
|
NOTE WELL: If a user snoops a pty the snooped text will not be shown
|
|
to the real user, which in many cases mean the real owner of the pty
|
|
will be able to know the attack is taking place.
|
|
|
|
IV. Workaround
|
|
|
|
Do not run script(1) as a non-root user.
|
|
|
|
The ptsname(3) issue only affects FreeBSD 6.0 and newer.
|
|
|
|
V. Solution
|
|
|
|
Perform one of the following:
|
|
|
|
1) Upgrade your vulnerable system to 5-STABLE, 6-STABLE, or
|
|
7.0-PRERELEASE, or to the RELENG_7_0, RELENG_6_3, RELENG_6_2,
|
|
RELENG_6_1, or RELENG_5_5 security branch dated after the correction
|
|
date.
|
|
|
|
2) To patch your present system:
|
|
|
|
The following patches have been verified to apply to FreeBSD 5.5, 6.1,
|
|
6.2, 6.3, and 7.0 systems.
|
|
|
|
a) Download the relevant patch from the location below, and verify the
|
|
detached PGP signature using your PGP utility.
|
|
|
|
[FreeBSD 5.5]
|
|
# fetch http://security.FreeBSD.org/patches/SA-08:01/pty5.patch
|
|
# fetch http://security.FreeBSD.org/patches/SA-08:01/pty5.patch.asc
|
|
|
|
[FreeBSD 6.x]
|
|
# fetch http://security.FreeBSD.org/patches/SA-08:01/pty6.patch
|
|
# fetch http://security.FreeBSD.org/patches/SA-08:01/pty6.patch.asc
|
|
|
|
[FreeBSD 7.0]
|
|
# fetch http://security.FreeBSD.org/patches/SA-08:01/pty7.patch
|
|
# fetch http://security.FreeBSD.org/patches/SA-08:01/pty7.patch.asc
|
|
|
|
b) Execute the following commands as root:
|
|
|
|
# cd /usr/src
|
|
# patch < /path/to/patch
|
|
|
|
c) Recompile the operating system as described in
|
|
<URL: http://www.freebsd.org/handbook/makeworld.html> and reboot the
|
|
system.
|
|
|
|
VI. Correction details
|
|
|
|
The following list contains the revision numbers of each file that was
|
|
corrected in FreeBSD.
|
|
|
|
Branch Revision
|
|
Path
|
|
- -------------------------------------------------------------------------
|
|
RELENG_5
|
|
src/lib/libutil/pty.c 1.15.4.1
|
|
RELENG_5_5
|
|
src/UPDATING 1.342.2.35.2.18
|
|
src/sys/conf/newvers.sh 1.62.2.21.2.20
|
|
src/lib/libutil/pty.c 1.15.16.1
|
|
RELENG_6
|
|
src/lib/libc/stdlib/grantpt.c 1.4.2.2
|
|
src/lib/libutil/pty.c 1.15.10.2
|
|
RELENG_6_3
|
|
src/UPDATING 1.416.2.37.2.3
|
|
src/sys/conf/newvers.sh 1.69.2.15.2.3
|
|
src/lib/libc/stdlib/grantpt.c 1.4.10.2
|
|
src/lib/libutil/pty.c 1.15.20.2
|
|
RELENG_6_2
|
|
src/UPDATING 1.416.2.29.2.13
|
|
src/sys/conf/newvers.sh 1.69.2.13.2.13
|
|
src/lib/libc/stdlib/grantpt.c 1.4.8.1
|
|
src/lib/libutil/pty.c 1.15.18.1
|
|
RELENG_6_1
|
|
src/UPDATING 1.416.2.22.2.24
|
|
src/sys/conf/newvers.sh 1.69.2.11.2.24
|
|
src/lib/libc/stdlib/grantpt.c 1.4.6.1
|
|
src/lib/libutil/pty.c 1.15.14.1
|
|
RELENG_7
|
|
src/lib/libc/stdlib/grantpt.c 1.7.2.4
|
|
src/lib/libutil/pty.c 1.17.2.3
|
|
RELENG_7_0
|
|
src/UPDATING 1.507.2.3.2.1
|
|
src/sys/conf/newvers.sh 1.72.2.5.2.2
|
|
src/lib/libc/stdlib/grantpt.c 1.7.2.2.2.2
|
|
src/lib/libutil/pty.c 1.17.2.2.2.1
|
|
- -------------------------------------------------------------------------
|
|
|
|
VII. References
|
|
|
|
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-0216
|
|
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-0217
|
|
|
|
The latest revision of this advisory is available at
|
|
http://security.FreeBSD.org/advisories/FreeBSD-SA-08:01.pty.asc
|
|
-----BEGIN PGP SIGNATURE-----
|
|
Version: GnuPG v1.4.7 (FreeBSD)
|
|
|
|
iD8DBQFHi+nfFdaIBMps37IRAhtUAJ9GXtRjTIxcbrCOxoMnO50ZLc5mAgCdGSyO
|
|
D83MVnUtP9rhzD2JfOPbaOw=
|
|
=V/kt
|
|
-----END PGP SIGNATURE-----
|