| Topic: |
Race condition in cvsbug |
|
|
| Category: |
contrib |
| Module: |
contrib_cvs |
| Announced: |
2005-09-07 |
| Credits: |
Marcus Meissner |
| Affects: |
All FreeBSD releases |
Corrected:
2005-09-07 13:43:05 UTC (RELENG_6, 6.0-BETA5)
2005-09-07 13:43:23 UTC (RELENG_5, 5.4-STABLE)
2005-09-07 13:43:36 UTC (RELENG_5_4, 5.4-RELEASE-p7)
2005-09-09 19:26:19 UTC (RELENG_5_3, 5.3-RELEASE-p22)
2005-09-07 13:44:06 UTC (RELENG_4, 4.11-STABLE)
2005-09-07 13:44:20 UTC (RELENG_4_11, 4.11-RELEASE-p12)
2005-09-09 19:24:22 UTC (RELENG_4_10, 4.10-RELEASE-p18)
CVE Name: CAN-2005-2693
For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit
<URL:http://www.freebsd.org/security/>.
I. Background
cvsbug(1) is a utility for reporting problems in the CVS revision
control system. It is based on the GNATS send-pr(1) utility.
II. Problem Description
A temporary file is created, used, deleted, and then re-created with
the same name. This creates a window during which an attacker could
replace the file with a link to another file. While cvsbug(1) is based
on the send-pr(1) utility, this problem does not exist in the version
of send-pr(1) distributed with FreeBSD.
In FreeBSD 4.10 and 5.3, some additional problems exist concerning
temporary file usage in both cvsbug(1) and send-pr(1).
III. Impact
A local attacker could cause data to be written to any file to which
the user running cvsbug(1) (or send-pr(1) in FreeBSD 4.10 and 5.3) has
write access. This may cause damage in itself (e.g., by destroying
important system files or documents) or may be used to obtain elevated
privileges.
IV. Workaround
Do not use the cvsbug(1) utility on any system with untrusted users.
Do not use the send-pr(1) utility on a FreeBSD 4.10 or 5.3 system with
untrusted users.
V. Solution
Perform one of the following:
1) Upgrade your vulnerable system to 4-STABLE or 5-STABLE, or to the
RELENG_5_4, RELENG_5_3, RELENG_4_11, or RELENG_4_10 security branch
dated after the correction date.
2) To patch your present system:
The following patches have been verified to apply to FreeBSD 4.10,
4.11, 5.3, and 5.4 systems.
a) Download the relevant patch from the location below, and verify the
detached PGP signature using your PGP utility.
[FreeBSD 4.10]
# fetch
ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:20/cvsbug410.patch
# fetch
ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:20/cvsbug410.patch.asc
[FreeBSD 5.3]
# fetch
ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:20/cvsbug53.patch
# fetch
ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:20/cvsbug53.patch.asc
[FreeBSD 4.11 and 5.4]
# fetch
ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:20/cvsbug.patch
# fetch
ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:20/cvsbug.patch.asc
b) Execute the following commands as root:
# cd /usr/src
# patch < /path/to/patch
# cd /usr/src/gnu/usr.bin/cvs/cvsbug
# make obj && make depend && make && make install
# cd /usr/src/gnu/usr.bin/send-pr
# make obj && make depend && make && make install
VI. Correction details
The following list contains the revision numbers of each file that was
corrected in FreeBSD.
Branch
Path Revision
--------------------------------------------------------------------------------------------------------
| RELENG_4 |
| |
src/contrib/cvs/src/cvsbug.in |
1.1.1.1.2.4 |
| RELENG_4_11 |
| |
src/UPDATING |
1.73.2.91.2.13 |
| |
src/sys/conf/newvers.sh |
1.44.2.39.2.16 |
| |
src/contrib/cvs/src/cvsbug.in |
1.1.1.1.2.3.2.1 |
| RELENG_4_10 |
| |
src/UPDATING |
1.73.2.90.2.19 |
| |
src/sys/conf/newvers.sh |
1.44.2.34.2.20 |
| |
src/contrib/cvs/src/cvsbug.in |
1.1.1.1.2.2.6.2 |
| |
src/gnu/usr.bin/send-pr/send-pr.sh |
1.13.2.13.2.1 |
| RELENG_5 |
| |
src/contrib/cvs/src/cvsbug.in |
1.1.1.3.2.1 |
| RELENG_5_4 |
| |
src/UPDATING |
1.342.2.24.2.16 |
| |
src/sys/conf/newvers.sh |
1.62.2.18.2.12 |
| |
src/contrib/cvs/src/cvsbug.in |
1.1.1.3.6.1 |
| RELENG_5_3 |
| |
src/UPDATING |
1.342.2.13.2.25 |
| |
src/sys/conf/newvers.sh |
1.62.2.15.2.27 |
| |
src/contrib/cvs/src/cvsbug.in |
1.1.1.3.4.1 |
| |
src/gnu/usr.bin/send-pr/send-pr.sh |
1.35.6.1 |
| RELENG_6 |
| |
src/contrib/cvs/src/cvsbug.in |
1.1.1.3.8.1 |
--------------------------------------------------------------------------------------------------------
VII. References
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-2693
|