一、情况分析
Python软件基金会(PSF)近日紧急推出Python 3.9.2和3.8.8稳定版,解决两个严重的安全缺陷,分别为CVE-2021-3177和CVE-2021-23336。PSF指出,CVE-2021-23336为web缓存投毒漏洞,CVE-2021-3177被列为“远程代码执行”漏洞,但这类漏洞遭利用的可能性非常小,因为要实现成功的远程代码执行,必须满足如下条件:
1、远程一方将不受信任的浮点数传递给ctypes.c_double.from_param(注:Python浮点数不受影响)。
2、将该对象传递给repr()(例如通过logging)。
3、使该浮点数成为有效的机器代码。
4、使该缓冲区溢出漏洞在执行代码的地方覆写栈。
而Red Hat评估该漏洞认为“最大的威胁是系统可用性”。当然,通过恶意输入造成拒绝服务也是非常严重的问题。
二、影响范围
CVE-2021-23336受影响的产品包括:从Python 3.x到3.9.1。
CVE-2021-23336受影响的产品包括:从0到3.6.13之前,从3.7.0到3.7.10之前,从3.8.0到3.8.8之前,从3.9.0到3.9.2之前。
三、处置建议
Python软件基金会(PSF)推出的Python 3.9.2和3.8.8稳定版,解决了以上两个严重的安全缺陷。在计算ctypes.c_double和ctypes.c_longdouble值的repr时避免静态缓冲区,修复CVE-2021-3177;将查询参数分隔符默认设置为&,并允许用户选择自定义分隔符,修复web缓存投毒漏洞(CVE-2021-23336)。