RHEL 7 / 8:Red Hat JBoss Core Services Apache HTTP Server 2.4.51 SP2 (RHSA-2023: 3354)

critical Nessus 插件 ID 176683

简介

远程 Red Hat 主机缺少一个或多个安全更新。

描述

远程 Redhat Enterprise Linux 7/8 主机上安装的程序包受到 RHSA-2023: 3354 公告提及的多个漏洞影响。

- 精心构建的 If:请求标头可造成超出所发送标头值的池(堆)内存位置中的内存读取或单个零字节写入。这可能导致进程崩溃。此问题影响 Apache HTTP Server 2.4.54 及更早版本。(CVE-2006-20001)

- Apache Portable Runtime Utility (APR-util) 的 apr_base64 函数中存在整数溢出或回绕漏洞,允许攻击者越界写入。此问题影响 Apache Portable Runtime Utility (APR-util) 1.6.1 及更低版本。(CVE-2022-25147)

- OpenSSL RSA 解密实现中存在一个基于时序的边信道,足以用于在 Bleichenbacher 式攻击中跨网络恢复明文。若要成功解密,攻击者必须能够发送大量的测试消息进行解密。
该漏洞影响所有 RSA 填充模式:PKCS#1 v1.5、RSA-OEAP 和 RSASVE。例如,在 TLS 连接中,客户端通常会使用 RSA 向服务器发送经过加密的预主密钥。如果攻击者能够发现客户端与服务器之间的真正连接,则可向服务器发送测试消息并记录消息处理用时。在发送足够多的消息后,攻击者可恢复用于原始连接的预主密钥,进而解密通过该连接发送的应用程序数据。(CVE-2022-4304)

- curl <7.87.0 HSTS 检查中存在漏洞,攻击者可绕过检查以诱骗程序继续使用 HTTP。
如使用 HSTS 支持,即使在 URL 中提供了 HTTP,仍可指示 curl 使用 HTTPS,而不是使用不安全的明文 HTTP 步骤。但是,如果给定 URL 中的主机名首先使用在 IDN 转换过程中被替换为 ASCII 对应项的 IDN 字符,则可以绕过 HSTS 机制。就像使用 UTF-8 U+3002 (IDEOGRAPHIC FULL STOP) 字符,而不是通用的 ASCII 句号 (U+002E)“.”。然后在后续请求中,程序不会检测 HSTS 状态并进行明文传输。这是因为它会存储经 IDN 编码的信息,但查找经 IDN 解码的信息。(CVE-2022-43551)

- curl <7.87.0 中存在释放后使用漏洞。可要求 Curl 通过 HTTP 代理*传输*其支持的几乎所有协议。HTTP 代理可以(而且经常会)拒绝此类传输操作。
如果传输特定协议 SMB 或 TELNET 被拒,Curl 会在其传输关闭代码路径中使用已释放的堆分配结构。(CVE-2022-43552)

- 函数 PEM_read_bio_ex() 会读取 BIO 中的 PEM 文件,并解析和解码名称(例如,
CERTIFICATE)、任何标头数据和负载数据。如果函数成功完成上述操作,则会使用指向包含相关解码数据的缓冲区的指针填充 name_out、header 和 data 参数。
调用程序负责释放这些缓冲区。构建的 PEM 文件中可能不会含有负载数据。在这种情况下,PEM_read_bio_ex() 将返回故障代码,但会使用指向已完成释放的缓冲区的指针填充标头参数。如果调用程序也释放了此缓冲区,则会发生双重释放。这很有可能会导致崩溃。如果攻击者能够提供恶意 PEM 文件以进行解析,则可实现拒绝服务攻击。函数 PEM_read_bio() 和 PEM_read() 是对 PEM_read_bio_ex() 的简单封装,因此这两个函数也会直接受到影响。这些函数也会受到许多其他 OpenSSL 函数的间接调用,包括同样容易受到攻击的 PEM_X509_INFO_read_bio_ex() 和 SSL_CTX_use_serverinfo_file()。有时,在 OpenSSL 内部使用这些函数不易受到攻击,因为如果 PEM_read_bio_ex() 返回故障代码,调用程序便不会释放标头参数。这些位置包括 PEM_read_bio_TYPE() 函数以及 OpenSSL 3.0 中引入的解码器。OpenSSL asn1parse 命令行应用程序也会受到此问题的影响。(CVE-2022-4450)

- 公共 API 函数 BIO_new_NDEF 是辅助函数,用于通过 BIO 对 ASN.1 数据作流式处理。该函数主要在 OpenSSL 内部用于为 SMIME、CMS 和 PKCS7 提供流式传输功能支持,但也可能由最终用户应用程序直接调用。该函数从调用程序接收 BIO,在其前面附加一个新的 BIO_f_asn1 filter BIO 以形成 BIO 链,然后将 BIO 链的新标头返回给调用程序。在某些情况下(例如 CMS Recipient 公钥无效时),新的 filter BIO 将被释放,而该函数则会返回表示失败的 NULL 结果。但是,在这种情况下,由于 BIO 链未正确清理,所以调用程序传递的 BIO 仍会保留指向之前已释放的 filter BIO 的内部指针。如果调用程序随后继续调用 BIO 上的 BIO_pop(),则会发生释放后使用。这很有可能会导致崩溃。这种情况直接发生在内部函数 B64_write_ASN1() 中,不仅可能导致 BIO_new_NDEF() 被调用,还会导致 BIO 上的 BIO_pop() 在随后被调用。此内部函数依次由公共 API 函数 PEM_write_bio_ASN1_stream、PEM_write_bio_CMS_stream、PEM_write_bio_PKCS7_stream、SMIME_write_ASN1、SMIME_write_CMS 和 SMIME_write_PKCS7 调用。可能受到此问题影响的其他公共 API 函数包括 i2d_ASN1_bio_stream、BIO_new_CMS、BIO_new_PKCS7、i2d_CMS_bio_stream 和 i2d_PKCS7_bio_stream。OpenSSL CMS 和 S/MIME 命令行应用程序同样会受到影响。(CVE-2023-0215)

- 存在一个与 X.509 GeneralName 内的 X.400 地址处理相关的类型混淆漏洞。
X.400 地址被解析为 ASN1_STRING,但 GENERAL_NAME 的公共结构定义错误地将 x400Address 字段的类型指定为 ASN1_TYPE。随后,按照 OpenSSL 函数 GENERAL_NAME_cmp 的解读,此字段应为 ASN1_TYPE 而不是 ASN1_STRING。CRL 检查启用(即应用程序设置 X509_V_FLAG_CRL_CHECK 标记)后,攻击者利用此漏洞可向 memcmp 调用传递任意指针,让指针能够读取内存内容或引起拒绝服务。在大多数情况下,攻击者需要同时提供证书链和 CRL 才能发起攻击,而这两者都不需要具有有效的签名。如果攻击者仅控制其中一个输入,则另一个输入必须已包含作为 CRL 分发点的 X.400 地址,但这种情况并不常见。因此,此漏洞最有可能只影响本身已实现通过网络检索 CRL 功能的应用程序。(CVE-2023-0286)

- curl <v7.88.0 中存在敏感信息明文传输漏洞,当连续请求多个 URL 时,可能导致 HSTS 功能失败。如使用 HSTS 支持,即使在 URL 中提供了 HTTP,仍可指示 curl 使用 HTTPS,而不是使用不安全的明文 HTTP 步骤。然而,令人意外的是,当在相同命令行上完成时,此 HSTS 机制会被后续传输忽略,因为状态不会正确维持下去。 (CVE-2023-23914)

- curl <v7.88.0 中存在敏感信息明文传输漏洞,当同时请求多个 URL 时,可能导致 HSTS 功能表现不当。如使用 HSTS 支持,即使在 URL 中提供了 HTTP,仍可指示 curl 使用 HTTPS,而不是使用不安全的明文 HTTP 步骤。然而,当并行完成多个传输时,此 HSTS 机制会出人意料地失败,因为 HSTS 缓存文件被最近完成的传输覆盖。之后向之前主机名的仅 HTTP 传输将*不会*正确升级到 HSTS。
(CVE-2023-23915)

- 在基于链接的 HTTP 压缩算法且版本低于 v7.88.0 的 curl 中存在配置资源时无限制或节流的漏洞,这意味着服务器响应可被多次压缩,并且可能使用不同的算法。已针对此解压缩链中可接受的链接数量设置上限,但该上限基于每个标题设置,所以恶意服务器仅使用许多标头即可插入几乎无数量上限的压缩步骤。使用此类解压缩链可导致 malloc 炸弹,使 curl 最终消耗大量分配的堆内存,或尝试并返回内存不足错误。(CVE-2023-23916)

Apache HTTP Server 2.4.0 至 2.4.55 版中的某些 mod_proxy 配置可造成 HTTP 请求走私攻击。当 mod_proxy 与某种形式的 RewriteRule 或 ProxyPassMatch 一起启用时,配置会受到影响,其中非特定模式会匹配用户提供的请求目标 (URL) 数据的某个部分,然后使用变量替换重新插入代理请求目标。例如:RewriteRule ^/here/(.*) http://example.com:8080/elsewhere?$1; 上的 RewriteEngine;[P] ProxyPassReverse /here/ http://example.com:8080/ 请求拆分/走私可导致绕过代理服务器中的访问控制、将非预期的 URL 代理到现有源服务器以及缓存中毒。建议用户至少更新到 Apache HTTP Server 的 2.4.56 版。(CVE-2023-25690)

请注意,Nessus 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。

解决方案

更新受影响的程序包。

另见

https://access.redhat.com/security/cve/CVE-2006-20001

https://access.redhat.com/security/cve/CVE-2022-4304

https://access.redhat.com/security/cve/CVE-2022-4450

https://access.redhat.com/security/cve/CVE-2022-25147

https://access.redhat.com/security/cve/CVE-2022-43551

https://access.redhat.com/security/cve/CVE-2022-43552

https://access.redhat.com/security/cve/CVE-2023-0215

https://access.redhat.com/security/cve/CVE-2023-0286

https://access.redhat.com/security/cve/CVE-2023-23914

https://access.redhat.com/security/cve/CVE-2023-23915

https://access.redhat.com/security/cve/CVE-2023-23916

https://access.redhat.com/security/cve/CVE-2023-25690

https://access.redhat.com/errata/RHSA-2023:3354

插件详情

严重性: Critical

ID: 176683

文件名: redhat-RHSA-2023-3354.nasl

版本: 1.0

类型: local

代理: unix

发布时间: 2023/6/5

最近更新时间: 2023/6/5

支持的传感器: Frictionless Assessment AWS, Frictionless Assessment Azure, Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Nessus

风险信息

VPR

风险因素: Medium

分数: 6.7

CVSS v2

风险因素: Critical

基本分数: 10

时间分数: 7.8

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

CVSS 分数来源: CVE-2023-25690

CVSS v3

风险因素: Critical

基本分数: 9.8

时间分数: 8.8

矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

时间矢量: CVSS:3.0/E:P/RL:O/RC:C

漏洞信息

CPE: cpe:/o:redhat:enterprise_linux:7, cpe:/o:redhat:enterprise_linux:8, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-apr-util, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-apr-util-devel, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-apr-util-ldap, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-apr-util-mysql, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-apr-util-nss, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-apr-util-odbc, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-apr-util-openssl, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-apr-util-pgsql, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-apr-util-sqlite, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-curl, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-httpd, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-httpd-devel, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-httpd-manual, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-httpd-selinux, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-httpd-tools, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-libcurl, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-libcurl-devel, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-mod_ldap, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-mod_proxy_html, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-mod_session, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-mod_ssl, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-openssl, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-openssl-devel, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-openssl-libs, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-openssl-perl, p-cpe:/a:redhat:enterprise_linux:jbcs-httpd24-openssl-static

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

可利用: true

易利用性: Exploits are available

补丁发布日期: 2023/6/5

漏洞发布日期: 2022/12/15

参考资料信息

CVE: CVE-2006-20001, CVE-2022-25147, CVE-2022-4304, CVE-2022-43551, CVE-2022-43552, CVE-2022-4450, CVE-2023-0215, CVE-2023-0286, CVE-2023-23914, CVE-2023-23915, CVE-2023-23916, CVE-2023-25690

CWE: 113, 125, 190, 319, 415, 416, 704, 770, 787

RHSA: 2023:3354