GLSA-202305-02 : Python、PyPy3:多个漏洞

critical Nessus 插件 ID 175043

语言:

描述

远程主机受到 GLSA-202305-02 中所述漏洞的影响(Python、PyPy3:多个漏洞)

- 在 Python(也称为 CPython)3.10.8 及之前的所有版本中,mailcap 模块不会将转义字符添加到在系统 mailcap 文件中发现的命令中,攻击者可借此将 shell 命令注入使用不受信任的输入调用 mailcap.findmatch 的应用程序(如果缺少对用户提供的文件名或参数的验证)。此补丁也会向后移植到 3.7、3.8、3.9 (CVE-2015-20107)

- 在 openstack-nova 的控制台代理 noVNC 中发现漏洞。通过构建恶意 URL,攻击者可使 noVNC 重定向到任何所需的 URL。(CVE-2021-3654)

- 在某些涉及 HTTPS 到 HTTPS 代理的情况下,1.26.4 之前的 Python urllib3 库 1.26.x 版本将会遗漏验证 SSL 证书。到 HTTPS 代理的初始连接(如果未通过 proxy_config 提供 SSLContext)不会验证证书的主机名。这意味着将静默接受(仍可使用默认的 urllib3 SSLContext 执行正确验证程序的)不同服务器的证书。
(CVE-2021-28363)

- ** 有争议 ** Python 3.x 至 3.10 版在 lib/http/server.py 中有一个开放重定向漏洞,这是由未针对 URI 路径开头的多个 (/) 提供保护而引起的,可能会导致信息泄露。
注意:第三方对此问题存在争议,因为 http.server.html 文档页面存在警告:
不建议将 http.server 用于生产用途,而仅用于基本的安全检查。(CVE-2021-28861)

- 在 Python 3.9.5 之前的版本中,ipaddress 库未正确处理 IP 地址字符串八进制数中的前导零字符。(在某些情况下)攻击者可利用此问题绕过基于 IP 地址的访问控制。 (CVE-2021-29921)

- 在 Python 中发现一个缺陷,尤其是在 urllib.parse 模块中。此模块有助于将统一资源定位器 (URL) 字符串拆分为多个组件。此问题涉及如何让 urlparse 方法不审查输入并允许 URL 路径中包含“\r”和“\n”等字符。此缺陷允许攻击者输入构建的 URL,从而导致注入攻击。此缺陷影响 Python 3.10.0b1、3.9.5、3.8.11、3.7.11 和 3.6.14 之前版本。(CVE-2022-0391)

- fdc6fef 之前的 Keccak XKCP SHA-3 参考实现存在整数溢出和缓冲区溢出,允许攻击者执行任意代码或消除预期的加密属性。
这会发生在 sponge 函数接口中。(CVE-2022-37454)

- Linux 上的 Python 3.9.16 之前的 3.9.x 版本和 3.10.9 之前的 3.10.x 版本允许在非默认配置中提升本地权限。Python 多处理库与 Linux 上的 forkserver 启动方法一起使用时,允许从同一计算机本地网络命名空间中的任何用户(这在许多系统配置中表示同一计算机上的任何用户)反序列化 pickles。Pickles 可执行任意代码。
因此,这允许将本地用户权限升级为运行任何 forkserver 进程的用户。将 multiprocessing.util.abstract_sockets_supported 设置为 False 是一种变通方案。多进程的 forkserver 启动方法不是默认的启动方法。仅 Linux 系统会发生此问题,因为只有 Linux 支持抽象命名空间套接字。低于 3.9 的 CPython 默认不使用 Linux 抽象命名空间套接字。在 3.7.8 和 3.8.3 版中,作为缺陷补丁添加了对用户手动指定抽象命名空间的支持,但在 3.9之前的 CPython 中,用户需要进行特定的不常见 API 调用才可以做到。(CVE-2022-42919)

- 在低于 3.11.1 版的 Python 中发现一个问题 。处理 IDNA (RFC 3490) 解码器的某些输入时,一个路径中存在不必要的二次算法,因此向解码器显示的特别构建的过长名称可导致 CPU 拒绝服务。主机名通常由可能受到恶意执行者控制的远程服务器提供;在这种情况下,它们可在尝试使用攻击者提供的假想主机名的客户端上触发过度消耗 CPU。
例如,攻击负载可放置在具有状态代码 302 的 HTTP 响应的 Location 标头中。计划在 3.11.1、 3.10.9、 3.9.16、 3.8.16 和 3.7.16 版中进行修复。(CVE-2022-45061)

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

解决方案

所有 Python 3.8 用户都应升级到最新版本:

# emerge --sync # emerge --ask --oneshot --verbose >=dev-lang/python-3.8.15_p3: 3.8 所有 Python 3.9 用户都应升级到最新版本:

# emerge --sync # emerge --ask --oneshot --verbose >=dev-lang/python-3.9.15_p3: 3.9 所有 Python 3.10 用户都应升级到最新版本:

# emerge --sync # emerge --ask --oneshot --verbose >=dev-lang/python-3.10.8_p3: 3.10 所有 Python 3.11 用户都应升级到最新版本:

# emerge --sync # emerge --ask --oneshot --verbose >=dev-lang/python-3.11.0_p2: 3.11 所有 Python 3.12 用户都应升级到最新版本:

# emerge --sync # emerge --ask --oneshot --verbose >=dev-lang/python-3.12.0_alpha1_p2 所有 PyPy3 用户都应升级到最新版本:

# emerge --sync # emerge --ask --oneshot --verbose >=dev-python/pypy3-7.3.9_p9

另见

https://security.gentoo.org/glsa/202305-02

https://bugs.gentoo.org/show_bug.cgi?id=787260

https://bugs.gentoo.org/show_bug.cgi?id=793833

https://bugs.gentoo.org/show_bug.cgi?id=811165

https://bugs.gentoo.org/show_bug.cgi?id=834533

https://bugs.gentoo.org/show_bug.cgi?id=835443

https://bugs.gentoo.org/show_bug.cgi?id=838250

https://bugs.gentoo.org/show_bug.cgi?id=864747

https://bugs.gentoo.org/show_bug.cgi?id=876815

https://bugs.gentoo.org/show_bug.cgi?id=877851

https://bugs.gentoo.org/show_bug.cgi?id=878385

https://bugs.gentoo.org/show_bug.cgi?id=880629

插件详情

严重性: Critical

ID: 175043

文件名: gentoo_GLSA-202305-02.nasl

版本: 1.0

类型: local

发布时间: 2023/5/3

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

支持的传感器: Nessus

风险信息

VPR

风险因素: High

分数: 7.4

CVSS v2

风险因素: High

基本分数: 8

时间分数: 6.6

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

CVSS 分数来源: CVE-2015-20107

CVSS v3

风险因素: Critical

基本分数: 9.8

时间分数: 9.1

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

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

CVSS 分数来源: CVE-2022-37454

漏洞信息

CPE: p-cpe:/a:gentoo:linux:pypy3, cpe:/o:gentoo:linux, p-cpe:/a:gentoo:linux:python

必需的 KB 项: Host/local_checks_enabled, Host/Gentoo/release, Host/Gentoo/qpkg-list

可利用: true

易利用性: Exploits are available

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

漏洞发布日期: 2021/3/15

参考资料信息

CVE: CVE-2015-20107, CVE-2021-28363, CVE-2021-28861, CVE-2021-29921, CVE-2021-3654, CVE-2022-0391, CVE-2022-37454, CVE-2022-42919, CVE-2022-45061