



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MySQL身份认证漏洞 升级到5.5.24可修正MySQL爆出了一个很大的安全漏洞,几乎影响5.1至5.5的所有版本。出问题的模块是登录时密码校验的部分(password.c),在知道用户名的情况下(如root),直接反复重试(平均大约256次)即可登入。MySQL发布5.5.24的时候,修正了这个BUG。我今天早上打开电脑,在seclists中看到一个很惊人的thread:/oss-sec/2012/q2/493MySQL爆出了一个很大的安全漏洞,几乎影响5.1至5.5的所有版本。出问题的模块是登录时密码校验的部分(password.c),在知道用户名的情况下(如root),直接反复重试(平均大约256次)即可登入。不过,MySQL身份认证的时候是采用3元组,username,ip,password。如果client的IP在mysql.user表中找不到对应的,也无法登陆。这个BUG实际上早在4月份就被发现了,今年5月7号,MySQL发布5.5.24的时候,修正了这个BUG。漏洞分析:出问题的代码如下/* Check that scrambled message corresponds to the password; the function is used by server to check that recieved reply is authentic. This function does not check lengths of given strings: message must be null-terminated, reply and hash_stage2 must be at least SHA1_HASH_SIZE long (if not, something fishy is going on). SYNOPSIS check_scramble() scramble clients reply, presumably produced by scramble() message original random string, previously sent to client (presumably second argument of scramble(), must be exactly SCRAMBLE_LENGTH long and NULL-terminated. hash_stage2 hex2octet-decoded database entry All params are IN. RETURN VALUE 0 password is correct !0 password is invalid*/my_boolcheck_scramble(const uchar *scramble_arg, const char *message, const uint8 *hash_stage2) SHA1_CONTEXT sha1_context; uint8 bufSHA1_HASH_SIZE; uint8 hash_stage2_reassuredSHA1_HASH_SIZE; mysql_sha1_reset(&sha1_context); /* create key to encrypt scramble */ mysql_sha1_input(&sha1_context, (const uint8 *) message, SCRAMBLE_LENGTH); mysql_sha1_input(&sha1_context, hash_stage2, SHA1_HASH_SIZE); mysql_sha1_result(&sha1_context, buf); /* encrypt scramble */ my_crypt(char *) buf, buf, scramble_arg, SCRAMBLE_LENGTH); /* now buf supposedly contains hash_stage1: so we can get hash_stage2 */ mysql_sha1_reset(&sha1_context); mysql_sha1_input(&sha1_context, buf, SHA1_HASH_SIZE); mysql_sha1_result(&sha1_context, hash_stage2_reassured); return memcmp(hash_stage2, hash_stage2_reassured, SHA1_HASH_SIZE);memcmp的返回值实际上是int,而my_bool实际上是char。那么在把int转换成char的时候,就有可能发生截断。比如,memcmp返回0200,截断后变成了0,调用check_scramble函数的就误以为“password is correct“。但是一般来说,memcmp的返回值都在127,-128之内。glibc的经SSE优化后的代码,不是如此。所以这个BUG只在特定的编译环境下才会触发:即编译MySQL的时候加了-fno-builtin,并且所使用的glibc是经SSE优化后的(一般系统自带的都是如此)。这里所说的glibc是指Linux的glibc,FreeBSD的libc不受影响。总的来说这个BUG还是比较严重的,上次MySQL出现这样的BUG还是在3.23/4.0时代。Security vulnerability in MySQL/MariaDB 在知道用户名的情况下(如root),直接反复重试(平均大约256次)即可登入。受影响的版本:All MariaDB and MySQL versions up to 5.1.61, 5.2.11, 5.3.5, 5.5.22 are vulnerable.MariaDB versions from 5.1.62, 5.2.12, 5.3.6, 5.5.23 are not.MySQL versions from 5.1.63, 5.5.24, 5.6.6 are not.详情请点击这里 /oss-sec/2012/q2/493= 补充说明 =这个 Bug 在官方编译的版本中没有发现。如果你是下载的源码,然后自己编译的就有可能遇到这个问题。这个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 质量检查月活动方案
- 见面礼仪活动策划方案
- 黄河鲤鱼活动方案
- 航空普测考试题及答案
- 贵州导游考试题及答案
- 光纤光学考试题及答案
- 股票高考试题及答案
- 工具钳工考试题及答案
- 各种注射考试题及答案
- 高职往年考试题及答案
- 数字时代的艺术史重构-洞察及研究
- 零星维修工程项目方案投标文件(技术方案)
- 海龟汤题目和答案(100题)
- 学习进阶理论指导下的美国科学课程体系整合研究
- 2025年法院书记员考试试题及答案
- 车队车辆保养维护方案
- 【教学评一体化】第五单元 观世间万物悟人生哲思【大单元公开课一等奖创新教学设计】新统编版语文七年级下册名师备课
- 新课程标准2025版解读
- 非营利组织会计岗位职责
- 电梯维修改造施工方案大修
- 军工科研事业单位会计制度
评论
0/150
提交评论