不得了了!Python 又爆出重大 Bug!
閱讀本文大概需要 4 分鐘。
對此,在 Python 3.8.8 和或 3.9.2 RC 版本剛剛發(fā)布三天之后,在部分用戶對安全漏洞擔(dān)憂的壓力下,新版 Python 加快了發(fā)布的進(jìn)程。同時,PSF 敦促 Python 用戶盡快將系統(tǒng)升級到 Python 3.8.8 或 3.9.2,特別是需要解決被跟蹤為 CVE-2021-3177 的遠(yuǎn)程代碼執(zhí)行(RCE)漏洞。
Python 發(fā)布團(tuán)隊表示:"自從宣布 Python 3.8.8 和 3.9.2 RC 版本發(fā)布以來,我們收到了來自終端用戶的一些關(guān)于 CVE-2021-3177 安全方面的詢問,并敦促我們加快最終版本的發(fā)布?!?/span>
具體的漏洞在于,Python 3.x 到 3.9.1 的 ctypes/callproc.c 中 PyCArg_repr 具有緩沖溢出,這可能導(dǎo)致遠(yuǎn)程代碼執(zhí)行。
它也會影響到 "接受浮點數(shù)作為不信任的輸入的 Python 應(yīng)用程序,如 c_double. param 的 1e300 參數(shù)所示。
所以說,只要你用的是 Python3,并且是 Python 3.8.8 之前的 Python 版本,都會面臨這個漏洞,比如 Python 3.6、Python 3.7 等。
該 Bug 的發(fā)生是因為不安全地使用了"sprintf"。影響之所以廣泛,因為 Python 已預(yù)裝安裝到了多個 Linux 發(fā)行版和 Windows 10 系統(tǒng)中。
當(dāng)前,各種 Linux 發(fā)行版(如 Debian)已經(jīng)向后移植了安全補(bǔ)丁,以確保屏蔽內(nèi)置版本的 Python。
RedHat 也發(fā)布公告表示,該漏洞是常見的內(nèi)存缺陷?!霸?Python 內(nèi)提供的 ctypes 模塊中發(fā)現(xiàn)了基于堆棧的緩沖區(qū)溢出。使用 ctypes 而不仔細(xì)驗證傳遞給它的輸入的應(yīng)用程序可能容易受到此漏洞的攻擊,這將允許攻擊者通過緩沖區(qū)溢出并使應(yīng)用程序奔潰?!?/span>

同時紅帽也針對自家的版本進(jìn)行了安全版本說明:

不過,為了避免一些不必要的麻煩,還是呼吁大家盡快升級。
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
推薦閱讀 誤執(zhí)行了rm -fr /*之后,除了跑路還能怎么辦?! 程序員必備58個網(wǎng)站匯總 大幅提高生產(chǎn)力:你需要了解的十大Jupyter Lab插件
