(FreeBSD Issues Fix) Sendmail Command Line Debugging Validation Flaw Lets Local Users Execute Arbitrary Code and Gain Root Privileges
SecurityTracker Alert ID: 1002294|
SecurityTracker URL: http://securitytracker.com/id/1002294
(Links to External Site)
Date: Aug 27 2001
Execution of arbitrary code via local system, Root access via local system|
Fix Available: Yes Vendor Confirmed: Yes |
Version(s): versions between 8.10.0 and 8.11.5 as well as all 8.12.0.Beta versions|
SecurityFocus discovered an input validation vulnerability in the Sendmail '-d' debugging facility that allows a local user to execute arbitrary code with root level privileges.|
The vulnerability is reportedly due to a flaw in the use of signed integers in Sendmail's tTflag() debugging function.
A remote user can call sendmail with the '-d' command line switch and can supply a large value for the 'category' part of the arguments to be used as an index for the system's internal trace vector. The user-supplied arguments can apparently cause a signed integer overflow such that the input validation function does not detect that the size of the user-supplied trace vector data exceeds the indicated (and overflowed) length value.
It is reported that the trace vector data is written before the program drops its set user id (suid) root privileges. As a result, a local user can overwrite process memory and cause arbitrary code to be executed with root privileges.
A local user can invoke sendmail and cause arbitrary code to be executed with root level privileges, giving the user root level access on the system.|
The vendor has released a fix. See the Source Message for the vendor's advisory containing directions on how to obtain the appropriate fix.|
Vendor URL: www.sendmail.org/ (Links to External Site)
Input validation error|
This archive entry is a follow-up to the message listed below.|
Source Message Contents
Date: Mon, 27 Aug 2001 14:44:57 -0700 (PDT)|
Subject: FreeBSD Security Advisory FreeBSD-SA-01:57.sendmail
-----BEGIN PGP SIGNED MESSAGE-----
FreeBSD-SA-01:57 Security Advisory
Topic: sendmail contains local root vulnerability
Credits: Cade Cairnss <email@example.com>
Affects: FreeBSD 4-STABLE after August 27, 2000 and prior to
the correction date, FreeBSD 4.1.1-RELEASE,
Corrected: 2001-08-21 01:36:37 UTC (FreeBSD 4.3-STABLE)
2001-08-22 05:34:11 UTC (RELENG_4_3)
FreeBSD only: NO
sendmail is a mail transfer agent.
II. Problem Description
Sendmail contains an input validation error which may lead to the
execution of arbitrary code with elevated privileges by local users.
Due to the improper use of signed integers in code responsible for the
processing of debugging arguments, a local user may be able to supply
the signed integer equivalent of a negative value supplied to
sendmail's "trace vector". This may allow a local user to write data
anywhere within a certain range of locations in process memory.
Because the '-d' command-line switch is processed before the program
drops its elevated privileges, the attacker may be able to cause
arbitrary code to be executed with root privileges.
Local users may be able to execute arbitrary code with root privileges.
Do not allow untrusted users to execute the sendmail binary.
One of the following:
1) Upgrade your vulnerable FreeBSD system to 4.3-STABLE or the
RELENG_4_3 security branch after the respective correction dates.
2) FreeBSD 4.x systems after August 27, 2000 and prior to the
The following patch has been verified to apply to FreeBSD
4.1.1-RELEASE, 4.2-RELEASE, 4.3-RELEASE and 4-STABLE dated prior to
the correction date.
Download the patch and the detached PGP signature from the following
locations, and verify the signature using your PGP utility.
# fetch ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-01:57/sendmail.patch
# fetch ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-01:57/sendmail.patch.asc
Execute the following commands as root:
# cd /usr/src
# patch -p < /path/to/patch
# cd /usr/src/lib/libsmutil
# make depend && make all
# cd /usr/src/usr.sbin/sendmail
# make depend && make all install
3) FreeBSD 4.3-RELEASE systems:
An experimental upgrade package is available for users who wish to
provide testing and feedback on the binary upgrade process. This
package may be installed on FreeBSD 4.3-RELEASE systems only, and is
intended for use on systems for which source patching is not practical
If you use the upgrade package, feedback (positive or negative) to
security-officer@FreeBSD.org is requested so we can improve the
process for future advisories.
During the installation procedure, backup copies are made of the
files which are replaced by the package. These backup copies will
be reinstalled if the package is removed, reverting the system to a
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/packages/SA-01:57/security-patch-sendmail-01.57.tgz
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/packages/SA-01:57/security-patch-sendmail-01.57.tgz.asc
Verify the detached PGP signature using your PGP utility.
# pkg_add security-patch-sendmail-01:57.tgz
Restart sendmail after applying the patch by executing the following
commands as root:
# killall sendmail
# /usr/sbin/sendmail -bd -q30m
The flags to sendmail may need to be adjusted as required for the
local system configuration.
VI. Correction details
The following is the sendmail $Id$ revision number of the file that
was corrected for the supported branches of FreeBSD. The $Id$
revision number of the installed source can be examined using the
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (FreeBSD)
Comment: For info see http://www.gnupg.org
-----END PGP SIGNATURE-----
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-security-notifications" in the body of the message