MySQL sql_parse.cc远程格式串漏洞

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请求来触发这个漏洞,导致受影响的服务崩溃。
 
 
 
 
解决方法
厂商补丁:
 
RedHat
------
RedHat已经为此发布了一个安全公告(RHSA-2009:1289-2)以及相应补丁:
RHSA-2009:1289-2:Moderate: mysql security and bug fix update
链接:https://rhn.redhat.com/errata/RHSA-2009-1289.html
 
其它发行版
Ubuntu
http://www.ubuntu.com/usn/usn-897-1/
Debian
https://security-tracker.debian.org/tracker/CVE-2009-2446
posted @ 2019-05-20 09:53  mrhonest  阅读(743)  评论(0)    收藏  举报