Date: Wed, 28 Aug 2002 11:58:53 -0400
From: David Endler <[email protected]>
To: [email protected], [email protected]Subject: iDEFENSE Security Advisory: Linuxconf locally exploitable buffer overflow
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
iDEFENSE Security Advisory 08.28.2002
Linuxconf locally exploitable buffer overflow vulnerability
DESCRIPTION
A vulnerability exists in linuxconf which if the
LINUXCONF_LANG environment variable processes at least 964
bytes of data, a buffer overflow occurs, thereby allowing an
attacker to modify the return address of the function and
execute arbitrary code with root permissions. iDEFENSE has an
exploit that allows a local user to launch a root shell on Red
Hat Linux 7.3 by targeting the latest version of linuxconf
1.28r3.
ANALYSIS
According to the author of Linuxconf, Jacques Gelinas
[email protected], "linuxconf picks the variable and uses it
to format a path using snprintf. This works fine. In fact, the
receiving buffer is PATH_MAX large so even a 1000 characters
variable won't overflow it and even if this was the case,
snprintf would do its work.
Once the path is formatted, the corresponding file is opened.
If the file do not exist, an error message is formatted in a
string. This was the problem and sprintf was used instead of
snprintf there.
There are two fixes. One is to use snprintf to format error
message at this place and the other is to look for appropriate
length for this variable (max 5 characters) immediately when it
is found."
DETECTION
This vulnerability affects any version of linuxconf
(essentially 6 years worth of distributions) that is installed
setuid root. Generally, the four ways in which this utility
can be installed setuid are:
1.) Shipped by vendor (Red Hat does not ship linuxconf
setuid, but Mandrake does as do other linux vendors)
2.) Installed by RPM from the main site
(http://www.solucorp.qc.ca/linuxconf/) for each particular
linux OS (installs setuid root by default)
3.) Installed by source code also from main site
(http://www.solucorp.qc.ca/linuxconf/) but prompts for whether
to install setuid root
4.) Installed in ways 1, 2, or 3 and manually set to setuid
root by the user for added functionality.
WORKAROUND
Remove the setuid bit from the linuxconf binary:
$ chmod u-s /bin/linuxconf
VENDOR RESPONSE
iDEFENSE immediately contacted Jacques Gelinas and he provided
a source code patch. iDEFENSE verified that the vulnerability
is mitigated in the newer distribution (1.28r4) of linuxconf.
An updated version (1.28r4) of linuxconf which addresses this
vulnerability will be available on August 28, 2002 at
http://www.solucorp.qc.ca/linuxconf/ .
Affected Linux vendors will make updates available
August 28th, 2002.
DISCLOSURE TIMELINE
August 9, 2002 - Exclusively disclosed to iDEFENSE
August 19, 2002 - Disclosed to Vendor
August 19, 2002 - Disclosed to iDEFENSE clients
August 21, 2002 - Announcement to [email protected]
August 28, 2002 - Coordinated public disclosure by Linux vendors,
Linuxconf maintainer, and iDEFENSE
CREDIT
This issue was exclusively disclosed to iDEFENSE by Euan Briggs
([email protected])
http://www.idefense.com/contributor.html
- - -dave
David Endler, CISSP
Director, Technical Intelligence
iDEFENSE, Inc.
14151 Newbrook Drive
Suite 100
Chantilly, VA 20151
voice: 703-344-2632
fax: 703-961-1071
[email protected]
www.idefense.com
-----BEGIN PGP SIGNATURE-----
Version: PGP 7.1.1
iQA/AwUBPWzPr0rdNYRLCswqEQK4BQCfRNs+pQacI3q7eFNibtkQ8CQ+OlQAoOil
L8EJZISNsIFSig7PD4Uip392
=SStn
-----END PGP SIGNATURE-----