Mandriva Linux 安全公告:openssl (MDVSA-2015:062)

high Nessus 插件 ID 82315

简介

远程 Mandriva Linux 主机缺少一个或多个安全更新。

描述

已在 openssl 中发现并修正了多种漏洞:

如果启用了 SSL_MODE_RELEASE_BUFFERS,则 OpenSSL 1.0.1g 及之前版本 s3_pkt.c 中的 ssl3_read_bytes 函数存在争用条件,允许远程攻击者通过多线程环境中的 SSL 连接,在会话之间注入数据或造成拒绝服务(释放后使用和解析错误)(CVE-2010-5298)。

OpenSSL 1.0.0l 及之前版本中的 Montgomery ladder 实现不能确保某些交换操作具有固定时间行为,这更容易使本地用户通过 FLUSH+RELOAD 缓存边信道攻击获取 ECDSA 临时信息 (CVE-2014-0076)。

1.0.1g 之前的 OpenSSL 1.0.1 中的 (1) TLS 和 (2) DTLS 实现未正确处理 Heartbeat Extension 数据包,这允许远程攻击者通过构建可触发缓冲区读取越界的数据包从进程内存中获取敏感信息,这一点已由读取私有密钥证实,此问题与 d1_both.c 和 t1_lib.c 有关,也称为 Heartbleed bug (CVE-2014-0160)。

在低于 0.9.8za 的 OpenSSL、低于 1.0.0m 的 OpenSSL 1.0.0 以及低于 1.0.1h 的 OpenSSL 1.0.1 中,d1_both.c 中的 dtls1_reassemble_fragment 函数无法正确验证 DTLS ClientHello 消息中的碎片长度,这将允许远程攻击者通过非初始长碎片执行任意代码或造成拒绝服务(缓冲区溢出和应用程序崩溃) (CVE-2014-0195)。

如果启用了 SSL_MODE_RELEASE_BUFFERS,则在某些递归调用期间,OpenSSL 1.x 到 1.0.1g 中的 s3_pkt.c 中的 do_ssl3_write 函数未正确管理缓冲区指针,这允许远程攻击者通过用于触发警报条件的矢量造成拒绝服务(空指针取消引用和应用程序崩溃)(CVE-2014-0198)。

在低于 0.9.8za 的 OpenSSL、低于 1.0.0m 的 OpenSSL 1.0.0 以及低于 1.0.1h 的 OpenSSL 1.0.1 中,d1_both.c 中的 dtls1_get_message_fragment 函数允许远程攻击者利用无效 DTLS 握手中的 DTLS hello 消息造成拒绝服务(递归和客户端崩溃)(CVE-2014-0221)。

0.9.8za 之前的 OpenSSL、1.0.0m 之前的 1.0.0 和 1.0.1h 之前的 1.0.1 无法正确限制对 ChangeCipherSpec 消息的处理,这可允许中间人攻击者触发在特定 OpenSSL 到 OpenSSL 的通信中使用零长度主密钥,进而通过构建的 TLS 握手劫持会话或获取敏感信息,也称为 CCS 注入漏洞 (CVE-2014-0224)。

当使用匿名 ECDH 加密套件时,在 0.9.8za 之前的 OpenSSL、1.0.0m 之前的 1.0.0 和 1.0.1h 之前的 1.0.1 中,s3_clnt.c 中的 ssl3_send_client_key_exchange 函数可允许远程攻击者通过触发 NULL 证书值造成拒绝服务(空指针取消引用和客户端崩溃) (CVE-2014-3470)。

在低于 1.0.1j 的 OpenSSL 1.0.1 中,DTLS SRTP 扩展的 d1_srtp.c 中存在内存泄漏,可允许远程攻击者通过构建的握手消息造成拒绝服务(内存消耗)(CVE-2014-3513)。

SSL 协议 3.0 通过 1.0.1i 等产品在 OpenSSL 中使用,它使用非确定性的 CBC 填充,这使得中间人攻击者更容易通过填充 Oracle 攻击(即 POODLE 问题)来获得明文数据 (CVE-2014-3566)。

在低于 0.9.8zc 的 OpenSSL、低于 1.0.0o 的 OpenSSL 1.0.0 以及低于 1.0.1j 的 OpenSSL 1.0.1 中,t1_lib.c 中的 tls_decrypt_ticket 函数存在内存泄漏,可允许远程攻击者通过构建的可触发完整性检查失败的会话票证造成拒绝服务(内存消耗)(CVE-2014-3567)。

OpenSSL 0.9.8zc、1.0.0o 和 1.0.1j 中 s23_srvr.c 的 ssl23_get_client_hello 函数不会对使用不受支持的协议的尝试进行正确处理,这允许远程攻击者通过非预期握手造成拒绝服务(空指针取消引用和后台程序崩溃),这一点已由对具有某些错误处理的非 ssl3 应用程序的 SSLv3 握手证实。注意:此问题在 CVE-2014-3568 补丁之后变得相关 (CVE-2014-3569)。

在低于 0.9.8zd 版本的 OpenSSL、低于 1.0.0p 的 OpenSSL 1.0.0 以及低于 1.0.1k 的 OpenSSL 1.0.1 中,BN_sqr 实现未正确计算 BIGNUM 值的平方,从而可能使远程攻击者更容易通过不明矢量攻破加密保护机制,此漏洞与 crypto/bn/asm/mips.pl、crypto/bn/asm/x86_64-gcc.c 和 crypto/bn/bn_asm.c 相关 (CVE-2014-3570)。

低于 0.9.8zd 的 OpenSSL、低于 1.0.0p 的 OpenSSL 1.0.0 以及低于 1.0.1k 的 OpenSSL 1.0.1 允许远程攻击者通过使用针对握手标头而非握手正文的不同读取操作处理的构建 DTLS 消息造成拒绝服务(空指针取消引用和应用程序崩溃),此漏洞与 d1_pkt.c 中的 dtls1_get_record 函数以及 s3_pkt.c 中的 ssl3_read_n 函数相关 (CVE-2014-3571)。

在低于 0.9.8zd 的 OpenSSL、低于 1.0.0p 的 OpenSSL 1.0.0 以及低于 1.0.1k 的 OpenSSL 1.0.1 中,s3_clnt.c 中的 ssl3_get_key_exchange 函数允许远程 SSL 服务器通过忽略 ServerKeyExchange 消息进行 ECDHE-to-ECDH 降级攻击并触发前向保密丢失 (CVE-2014-3572)。

低于 0.9.8zd 的 OpenSSL、低于 1.0.0p 的 OpenSSL 1.0.0 以及低于 1.0.1k 的 OpenSSL 1.0.1 不会对证书数据强制实施某些限制,从而允许远程攻击者通过在证书的未签名部分中包含构建的数据来攻破基于指纹的证书黑名单保护机制,此漏洞与 crypto/asn1/a_verify.c、crypto/dsa/dsa_asn1.c、crypto/ecdsa/ecs_vrf.c 和 crypto/x509/x_all.c 相关 (CVE-2014-8275)。

低于 0.9.8zd 的 OpenSSL、低于 1.0.0p 的 1.0.0 和低于 1.0.1k 的 1.0.1 中的 s3_clnt.c 内的 ssl3_get_key_exchange 函数允许远程 SSL 服务器通过以不合规的角色(与 FREAK 问题有关)提供临时弱 RSA 密钥来执行 RSA-to-EXPORT_RSA 降级攻击,并帮助进行暴力破解解密。注意:此 CVE 的范围仅限基于 OpenSSL 的客户端代码,而非与服务器或其他 TLS 实现相关联的 EXPORT_RSA 问题 (CVE-2015-0204)。

在低于 1.0.0p 的 OpenSSL 1.0.0 以及低于 1.0.1k 的 OpenSSL 1.0.1 中,s3_srvr.c 中的 ssl3_get_cert_verify 函数接受在不要求 CertificateVerify 消息的情况下通过 Diffie-Hellman (DH) 证书进行客户端认证,这允许远程攻击者通过发送到可识别具有 DH 支持的证书颁发机构的服务器的构建 TLS 握手协议流量,在不知晓私钥的情况下获取访问权限 (CVE-2015-0205)。

在低于 1.0.0p 的 OpenSSL 1.0.0 以及低于 1.0.1k 的 OpenSSL 1.0.1 中,d1_pkt.c 中的 dtls1_buffer_record 函数存在内存泄漏,允许远程攻击者通过发送下一个 epoch 的许多重复记录来造成拒绝服务(内存消耗),从而导致重播检测失败 (CVE-2015-0206)。

低于 0.9.8zf 的 OpenSSL、低于 1.0.0r 的 1.0.0、低于 1.0.1m 之前的 1.0.1 以及低于 1.0.2a 的 1.0.2 中的 crypto/ec/ec_asn1.c 内的 d2i_ECPrivateKey 函数中存在释放后使用漏洞,可允许远程攻击者通过导入期间未正确处理的畸形椭圆曲线 (EC) 私钥文件造成拒绝服务(内存损坏和应用程序崩溃)或造成其他不明影响 (CVE-2015-0209)。

低于 0.9.8zf 的 OpenSSL、低于 1.0.0r 的 1.0.0 版、低于 1.0.1m 的 1.0.1 以及低于 1.0.2a 的 1.0.2 中的 crypto/asn1/a_type.c 内的 ASN1_TYPE_cmp 函数未正确执行布尔类型比较,这允许远程攻击者通过向使用证书验证功能的端点提供构建的 X.509 证书来造成拒绝服务(无效读取操作和应用程序崩溃) (CVE-2015-0286)。

低于 0.9.8zf 的 OpenSSL、低于 1.0.0r 的 1.0.0、低于 1.0.1m 的 1.0.1 以及低于 1.0.2a 的 1.0.2 中的 crypto/asn1/tasn_dec.c 内的 ASN1_item_ex_d2i 函数未重新初始化 CHOICE 和 ADB 数据结构,从而允许攻击者通过利用依赖于 ASN.1 结构重用的应用程序来造成拒绝服务(无效写入操作和内存损坏)(CVE-2015-0287)。

低于 0.9.8zf 的 OpenSSL、低于 1.0.0r 的 1.0.0、低于 1.0.1m 的 1.0.1 以及低于 1.0.2a 的 1.0.2 中的 crypto/x509/x509_req.c 内的 X509_to_X509_REQ 函数可允许攻击者通过无效的证书密钥造成拒绝服务(空指针取消引用和应用程序崩溃)(CVE-2015-0288)。

低于 0.9.8zf 的 OpenSSL、低于 1.0.0r 的 1.0.0、低于 1.0.1m 的 1.0.1 以及低于 1.0.2a 的 1.0.2 中的 PKCS#7 实现未正确处理缺少外部 ContentInfo 的问题,可允许攻击者通过利用处理任意 PKCS#7 数据的应用程序并提供以与 crypto/pkcs7/pk7_doit.c 和 crypto/pkcs7/pk7_lib.c 相关的 ASN.1 编码的畸形数据造成拒绝服务(空指针取消引用和应用程序崩溃)(CVE-2015-0289)。

低于 0.9.8zf 的 OpenSSL、低于 1.0.0r 的 1.0.0、低于 1.0.1m 的 1.0.1 以及低于 1.0.2a 的 1.0.2 中的 SSLv2 实现允许远程攻击者通过构建的 CLIENT-MASTER-KEY 消息造成拒绝服务(s2_lib.c 断言失败和后台程序退出)(CVE-2015-0293)。

更新后的程序包已升级到 1.0.1m 版本,这些安全缺陷均已修复。

解决方案

更新受影响的数据包。

另见

https://www.openssl.org/news/secadv/20150108.txt

https://www.openssl.org/news/secadv/20150319.txt

插件详情

严重性: High

ID: 82315

文件名: mandriva_MDVSA-2015-062.nasl

版本: 1.13

类型: local

发布时间: 2015/3/30

最近更新时间: 2022/5/5

风险信息

VPR

风险因素: High

分数: 7.7

CVSS v2

风险因素: High

基本分数: 9.4

矢量: AV:N/AC:L/Au:N/C:C/I:C/A:N

漏洞信息

CPE: p-cpe:/a:mandriva:linux:lib64openssl-devel, p-cpe:/a:mandriva:linux:lib64openssl-engines1.0.0, p-cpe:/a:mandriva:linux:lib64openssl-static-devel, p-cpe:/a:mandriva:linux:lib64openssl1.0.0, p-cpe:/a:mandriva:linux:openssl, cpe:/o:mandriva:business_server:2

必需的 KB 项: Host/local_checks_enabled, Host/cpu, Host/Mandrake/release, Host/Mandrake/rpm-list

可利用: true

易利用性: Exploits are available

补丁发布日期: 2015/3/27

CISA 已知利用日期: 2022/5/25

可利用的方式

Core Impact

参考资料信息

CVE: CVE-2010-5298, CVE-2014-0076, CVE-2014-0160, CVE-2014-0195, CVE-2014-0198, CVE-2014-0221, CVE-2014-0224, CVE-2014-3470, CVE-2014-3513, CVE-2014-3566, CVE-2014-3567, CVE-2014-3569, CVE-2014-3570, CVE-2014-3571, CVE-2014-3572, CVE-2014-8275, CVE-2015-0204, CVE-2015-0205, CVE-2015-0206, CVE-2015-0209, CVE-2015-0286, CVE-2015-0287, CVE-2015-0288, CVE-2015-0289, CVE-2015-0293

MDVSA: 2015:062