BUGTRAQ ID: 29405
CVE(CAN) ID: CVE-2008-0891,CVE-2008-1672
OpenSSL是一种开放源码的SSL实现,用来实现网络通信的高强度加密,现在被广泛地用于各种网络应用程序中。
OpenSSL在处理畸形的连接时存在漏洞,远程攻击者可能利用此漏洞导致服务器程序崩溃。
当用以下命令行运行OpenSSL时:
openssl s_server -key path_to_key \
-cert path_to_certificate \
-www `openssl ciphers 'ALL:COMPLEMENTOFALL'`
如果接收到的Client Hello报文中服务器名称扩展将server_name设置为0x00且名称长度为1,则程序在325行的ssl/t1_lib.c文件检测到错误的主机名并结束握手,之后试图释放已经释放的指针,导致OpenSSL出现分段错误崩溃。openssl程序默认不允许处理TLS扩展,必须在编译时明确地启用。
在用以下命令行运行openssl时:
openssl s_client -connect localhost:4433 -cipher \
`openssl ciphers 'ALL:COMPLEMENTOFALL'` -debug -msg
openssl向服务器发送Client Hello消息,服务器用Server Hello消息响应(选择了TLS_DH_ANON_WITH_RC4_128_MD5密码组),然后是Server Hello Done消息(忽略Server Key Exchange消息)。ssl3_get_key_exchange()允许忽略Server Key Exchange消息,但s->session->sess_cert为空且ssl3_get_server_done()没有执行任何检查,客户端状态机器继续执行到ssl3_send_client_key_exchange()且没有检查s->session->sess_cert的有效性便试图引用(s3_clntl.c:1970)。如果客户端使用特殊的密码组连接到了恶意的服务器,服务器就会导致客户端崩溃。
OpenSSL Project OpenSSL 0.9.8g
OpenSSL Project OpenSSL 0.9.8f
OpenSSL Project
---------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
<a href=http://www.openssl.org/source/openssl-0.9.8h.tar.gz target=_blank>http://www.openssl.org/source/openssl-0.9.8h.tar.gz</a>
暂无评论