前言
旧版的Python2,存在许多的漏洞比如下面的这些:
Python 代码问题漏洞CVE-2022-48565:该漏洞源于存在 XML 外部实体问题。
Python 路径遍历漏洞CVE-2014-4650:Python是Python软件基金会的一套开源的、面向对象的程序设计语言。该语言具有可扩展、支持模块和包、支持多种平台等特点。 Python 2.7.5版本和3.3.4版本中的CGIHTTPServer模块存在路径遍历漏洞,该漏洞源于程序没有正确处理URL中编码的路径分隔符。攻击者可借助特制字符序列利用该漏洞获取CGI脚本的源代码。
CPython 数字错误漏洞CVE-2017-1000158:CPython(又名Python)是一款用C语言实现的Python解释器。 CPython2.7.13之前的版本中的stringobject.c文件的‘PyString_DecodeEscape’函数存在整数溢出漏洞。攻击者可利用该漏洞造成基于堆的缓冲区溢出并可能执行任意代码。
Python 信任管理问题漏洞CVE-2019-9636:Python 2.7.x版本版本至2.7.16版本和3.x版本至3.7.2版本中存在信任管理问题漏洞。攻击者可借助特制的URL利用该漏洞泄露信息(cookies或身份验证数据)
Python urllib 路径遍历漏洞CVE-2019-9948:urllib是Python其中的一个用于处理URL的模块。 Python 2.x版本至2.7.16版本中的urllib存在路径遍历漏洞,该漏洞源于程序支持local_file: scheme。远程攻击者可利用该漏洞绕过保护机制
旧版还存在Python 信任管理问题漏洞CVE-2019-10160,Python 安全漏洞CVE-2023-36632、CVE-2017-17522,Python X509证书解析器代码问题漏洞CVE-2019-5010,Python 输入验证错误漏洞CVE-2019-16056,Python 资源管理错误漏洞CVE-2019-9674、CVE-2018-14647、CVE-2022-45061,Python 代码问题漏洞CVE-2022-26488等等的高危漏洞都可以通过升级到最新的Python版本解决。
升级步骤如下:
第一步:下载Python2的最后一个版本2.7.18:https://www.python.org/ftp/python/2.7.18/
上传到服务器
然后解压缩源码包:
tar -zxvf Python-2.7.18.tgz
查看Python安装目录。
第二步:配置、编译安装:
进入到源码包内
cd /root/Python-2.7.18/
配置:
指定可执行文件、库文件、配置文件、资源文件的安装路径。若没有权限加sudo
./configure --prefix=/usr/local
编译:
make
安装:
注意:不要使用make install,否则会覆盖系统自带python
make altinstall
第三步:删除或备份旧版本 Python 2.7.5:
查看一下Python是否安装在此目录。
如果是,则使用以下命令进行备份。
mv /usr/bin/python /usr/bin/python2.7.5
链接新版本Python 2.7.18:
ln -s /usr/local/bin/python2.7 /usr/bin/python
最后查看当前版本:
python -V