不得了了!Python 又爆出重大 Bug!

共 1560字,需浏览 4分钟

 ·

2021-03-01 12:27

来源:CSDN,Python编程时光

阅读本文大概需要 4 分钟。


近日,Python 软件基金会(PSF)释出 Python 3.8.8 和 3.9.2  版本,该版本主要修复了两个值得注意的安全漏洞,其中一个名为“CVE-2021-3177”的漏洞容易被攻击者远程利用,基于代码执行可让计算机脱机。
乍一看,让计算机脱机并不是什么大事,不过,倘若真的被有心之人利用该漏洞,那么,使用 Python 的用户难免会有一段糟心的体验。

对此,在 Python 3.8.8 和或 3.9.2 RC 版本刚刚发布三天之后,在部分用户对安全漏洞担忧的压力下,新版 Python 加快了发布的进程。同时,PSF 敦促 Python 用户尽快将系统升级到 Python 3.8.8 或 3.9.2,特别是需要解决被跟踪为 CVE-2021-3177 的远程代码执行(RCE)漏洞。

Python 发布团队表示:"自从宣布 Python 3.8.8 和 3.9.2 RC 版本发布以来,我们收到了来自终端用户的一些关于 CVE-2021-3177 安全方面的询问,并敦促我们加快最终版本的发布。”

具体的漏洞在于,Python 3.x 到 3.9.1 的 ctypes/callproc.c 中 PyCArg_repr 具有缓冲溢出,这可能导致远程代码执行。

它也会影响到 "接受浮点数作为不信任的输入的 Python 应用程序,如 c_double. param 的 1e300 参数所示。

所以说,只要你用的是 Python3,并且是 Python 3.8.8 之前的 Python 版本,都会面临这个漏洞,比如 Python 3.6、Python 3.7 等。

该 Bug 的发生是因为不安全地使用了"sprintf"。影响之所以广泛,因为 Python 已预装安装到了多个 Linux 发行版和 Windows 10 系统中。

当前,各种 Linux 发行版(如 Debian)已经向后移植了安全补丁,以确保屏蔽内置版本的 Python。

RedHat 也发布公告表示,该漏洞是常见的内存缺陷。“在 Python 内提供的 ctypes 模块中发现了基于堆栈的缓冲区溢出。使用 ctypes 而不仔细验证传递给它的输入的应用程序可能容易受到此漏洞的攻击,这将允许攻击者通过缓冲区溢出并使应用程序奔溃。”

同时红帽也针对自家的版本进行了安全版本说明:

虽然远程代码执行漏洞是一则坏消息,不过,红帽官方指出这个漏洞带来的最大威胁是对系统可用性的威胁,这意味着攻击者可能只能发动拒绝服务攻击,简单来讲,就是让计算机停止提供服务。

不过,为了避免一些不必要的麻烦,还是呼吁大家尽快升级。

Python 新版下载地址:

https://www.python.org/downloads/

或者通过其他方式升级,比如 pyenv、conda 等,升级到 Python 3.8.8 或者 Python 3.9.2 即可。

具体操作文档可见:

https://github.com/pyenv/pyenv

https://conda.io/projects/conda/en/latest/user-guide/concepts/environments.html

推荐阅读
误执行了rm -fr /*之后,除了跑路还能怎么办?!
程序员必备58个网站汇总
大幅提高生产力:你需要了解的十大Jupyter Lab插件

浏览 43
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报