Python 紧急修复漏洞,攻击者此前可远程代码执行漏洞

Python 紧急修复漏洞,攻击者此前可远程代码执行漏洞_第1张图片

近日,Python 软件基金会 (PSF) 紧急推出 Python 3.9.2 和 3.8.8 稳定版,解决了两个严重的安全缺陷,其中一个从理论上攻击者可远程代码执行漏洞。

PSF 在最新的声明中表示:“自从发布 3.9.2 和 3.8.8 的候选版本以来,由于安全方面的原因,我们收到了大量终端用户的查询督促,要求我们加快最终稳定版本的发布速度。”


PSF 在声明中指出,发布候选版本中包含两个安全修复方案:CVE-2021-3177 和 CVE-2021-23336。

修复的漏洞具体的原因在于,Python 3.x 到 3.9.1 的 ctypes/callproc.c 中 PyCArg_repr 有缓冲溢出,这可能导致远程代码执行。它会影响“接受浮点数作为不受信任的输入的 Python 应用程序,如 c_double.from_param 的 1e300 参数所示”。

发生该错误是原因,是因为不安全地使用了“sprintf”。影响之所以广泛,是因为 Python 已将其预先安装到了多个 Linux 发行版和 Windows 10 当中。

但 PSF 也指出,虽然 CVE-2021-3177 被列为“远程代码执行”漏洞,但这类漏洞遭利用的可能性非常小,因为要实现成功的 RCE,必须满足如下条件:

  • 远程一方将不受信任的浮点数传递给 ctypes.c_double.from_param(注:Python 浮点数不受影响)
  • 将该对象传递给repr() (例如通过 logging)
  • 使该浮点数成为有效的机器代码
  • 使该缓冲区溢出漏洞在执行代码的地方覆写栈。

而 Red Hat 在评估该漏洞后,表示“最大的威胁是系统可用性”。

“可以肯定的是,通过恶意输入造成拒绝服务也是一个严重的问题。”出于这一原因。PSF 决定停止位漏洞修复版本提供发布候选版本。同时也为那些认为发布候选版本不够的社区成员发布了最终的 3.9.2 和 3.8.8 稳定版本。

部分参考资料来源:

segmentfault 思否

你可能感兴趣的