首页 -> 安全研究

安全研究

安全漏洞
MySQL远程访问漏洞

发布日期:2000-02-10
更新日期:2000-02-10

受影响系统:
T.C.X DataKonsult MySQL 3.23.9
T.C.X DataKonsult MySQL 3.23.8
T.C.X DataKonsult MySQL 3.23.10
T.C.X DataKonsult MySQL 3.22.30
T.C.X DataKonsult MySQL 3.22.29
T.C.X DataKonsult MySQL 3.22.27
T.C.X DataKonsult MySQL 3.22.26
描述:
BUGTRAQ  ID: 975
CVE(CAN) ID: CVE-2000-0148

来源:Robert van der Meulen <rvdm@cistron.nl>.

    在MySQL的口令验证机制里存在安全漏洞。它允许任何用户从有目标机器数据库访问权限的机器上与该数据库进行连接。攻击者不必知道帐号和口令,而只需知道一个可用的帐号名。3.22.26a及以上版本存在这个漏洞,以下版本也可能会有,但未经证实。
    问题出现在服务器使用客户端返回的字符串进行验证,但没有检查其有效长度:

while (*scrambled)
{
if (*scrambled++ != (char) (*to++ ^ extra))
return 1; /* Wrong password */
}

    *scrabled是由客户端返回的字符串。如果用户返回一个单字符作为*scrambled的值,则只有一个字节内容会与实际口令比较。因此只要这个字符匹配,就能通过MySQL的身份认证,从而允许访问数据库。据漏洞的发现者说,最多存在32种可能。

建议:
临时解决方法:在认证字符串验证前检查客户端字符串长度是否有效:

if (strlen(scrambled)!=strlen(to)) {
return 1;
}

    另外,建议只允许特定主机连接MySQL数据库。

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