安全研究

安全漏洞
MySQL sql_parse.cc远程格式串漏洞

发布日期:2009-07-08
更新日期:2009-07-10

受影响系统:
MySQL AB MySQL 5.0.83
描述:
BUGTRAQ  ID: 35609
CVE ID: CVE-2009-2446

MySQL是一款使用非常广泛的开放源代码关系数据库系统,拥有各种平台的运行版本。

MySQL的sql_parse.cc文件中的dispatch_command()函数存在格式串错误:

2084行:

  case COM_CREATE_DB:                // QQ: To be removed
    {
      char *db=thd->strdup(packet), *alias;
      HA_CREATE_INFO create_info;

      statistic_increment(thd->status_var.com_stat[SQLCOM_CREATE_DB],
              &LOCK_status);
      // null test to handle EOM
      if (!db || !(alias= thd->strdup(db)) || check_db_name(db))
      {
    my_error(ER_WRONG_DB_NAME, MYF(0), db ? db : "NULL");
    break;
      }
      if (check_access(thd,CREATE_ACL,db,0,1,0,is_schema_db(db)))
    break;
      [1] mysql_log.write(thd,command,packet);
      bzero(&create_info, sizeof(create_info));
      mysql_create_db(thd, (lower_case_table_names == 2 ? alias : db),
                      &create_info, 0);
      break;
    }

2105行:

  case COM_DROP_DB:                // QQ: To be removed
    {
      statistic_increment(thd->status_var.com_stat[SQLCOM_DROP_DB],
              &LOCK_status);
      char *db=thd->strdup(packet);
      /*  null test to handle EOM */
      if (!db || check_db_name(db))
      {
    my_error(ER_WRONG_DB_NAME, MYF(0), db ? db : "NULL");
    break;
      }
      if (check_access(thd,DROP_ACL,db,0,1,0,is_schema_db(db)))
    break;
      if (thd->locked_tables || thd->active_transaction())
      {
    my_message(ER_LOCK_OR_ACTIVE_TRANSACTION,
                   ER(ER_LOCK_OR_ACTIVE_TRANSACTION), MYF(0));
    break;
      }
      [2] mysql_log.write(thd,command,db);
      mysql_rm_db(thd, db, 0, 0);
      break;
    }

在[1]和[2]处对mysql_log.write()的调用导致了这个格式串错误。通过认证的远程攻击者可以通过提交特制的COM_CREATE_DB或COM_DROP_DB请求来触发这个漏洞,导致受影响的服务崩溃。

<*来源:Kingcope (kingcope@gmx.net
  
  链接:http://secunia.com/advisories/35767/
        http://marc.info/?l=bugtraq&m=124715058728774&w=2
        https://www.redhat.com/support/errata/RHSA-2009-1289.html
        https://www.redhat.com/support/errata/RHSA-2010-0110.html
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

http://milw0rm.com/exploits/9085

建议:
厂商补丁:

RedHat
------
RedHat已经为此发布了一个安全公告(RHSA-2009:1289-02)以及相应补丁:
RHSA-2009:1289-02:Moderate: mysql security and bug fix update
链接:https://www.redhat.com/support/errata/RHSA-2009-1289.html

浏览次数:5242
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障