编程语言
首页 > 编程语言> > Python又爆重大漏洞,你的电脑可能正在被攻击

Python又爆重大漏洞,你的电脑可能正在被攻击

作者:互联网

1 安全漏洞

2月19号,Python 软件基金会(PSF)发布了 Python 3.8.8 和 3.9.2 版本。

这两个版本主要修复了两个值得注意的安全漏洞,其中一个名为“CVE-2021-3177”的漏洞容易被攻击者远程利用,基于代码执行可让计算机崩溃。

在这里插入图片描述

本来只要发布最新的3.9.2就可以,同时发布3.8.8是为了方便使用3.8的用户只要更新补丁版本就可以了,没必要为此升级到3.9。毕竟对于复杂的软件,升级一个小版本需要做全面的测试,代价沉重。

PSF敦促Python用户尽快将系统升级到Python3.8.8或3.9.2,特别是需要解决被跟踪为 CVE-2021-3177 的远程代码执行(RCE)漏洞。

Linux,Windows等平台也纷纷通知各自的用户的尽快升级Python:

1.Redhat给的警告

在这里插入图片描述

2.Windows给的警告

在这里插入图片描述

2 原理解释

这个漏洞的英文描述是这样的:

在这里插入图片描述

这是3.9的Release notes:

在这里插入图片描述

说人话,简单来说漏洞的发生是这样的:

1.Python使用了一些C语言写的数据类型,被称为ctype,其中一个就是callproc.c。

2.这个callproc.c有漏洞,可以造成黑客在你的电脑上执行他的代码,访问或者修改缓存区的敏感数据,造成系统崩溃等。

3.这个漏洞发生的条件是:你的程序接受用户输入的浮点数,并且没有验证浮点数的合法性。黑客可能传入的不是浮点数,而是一段代码,进而非法访问缓存区内的数据,造成系统崩溃。更进一步这个漏洞和C语言中的sprintf有关系。

大概的过程是这样的:

在这里插入图片描述

基本上,这个问题最大的伤害就是造成你的系统崩溃。

这对于个人用户是关系不大的。但是对服务器影响就很大了。

如果一些银行系统运行着Python的程序,结果造成了系统崩溃,影响了用户使用系统,可能技术部的奖金都都没了。

在这里插入图片描述

3 代码示例

来点直观的认识,用代码举一个类似的安全漏洞,同样关于打印,同样关于远程代码执行:

CONFIG = {
    “API_KEY”: “secret_key”
}
class User:
    name = “”
    email = “”
    def __init__(self, name, email):
        self.name = name
        self.email = email
    def __str__(self):
        return self.name

name = “Toby”
email = “oyetoketoby80@gmail.com”
user = User(name, email)
print(f”{user.__init__.__globals__[‘CONFIG’][‘API_KEY’]}”)

代码说明:最后一行使用的答应方法,如果无脑接受用户的输入,用户可以访问全局配置,并打印出程序的密码,从此你的数据就对黑客敞开。这是非常严重的安全漏洞。

下面是摘自csdn的一些解释:

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

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

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

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

4. 你应该做什么?

这个安全漏洞告诉我们:

1.如果你的服务器上运行着Python,建议尽快升级到3.8.8或者3.9.2。

2.自己的电脑建议升级,但是没有那么重要,除非在上面运行Python网站等。

但是作为一个程序员,要注意一点:

永远要验证用户的输入。在这个又大又坏的世界,这样可以活的久一点。

在这里插入图片描述

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

标签:name,Python,电脑,学习,漏洞,email,3.9
来源: https://blog.csdn.net/JAVAmonster12/article/details/122707898