文 | Travis
出品 | OSC開源社區(ID:oschina2013)
Tensorflow 是一個基于 Python 的機器學習和人工智能專案,該專案由 Google 開發,近日 TensorFlow 已經放棄了對 YAML 的支持,以修復一個關鍵的代碼執行漏洞,

YAML 或 YAML Ain't Markup Language 是一種人類可讀的資料序列化語言,用于在行程和應用程式之間傳遞物件和存盤資料,許多 Python 應用程式都使用 YAML 來序列化和反序列化物件,
該漏洞的 CVE ID 為 CVE-2021-37678,TensorFlow 和 Keras(TensorFlow 的一個封裝專案)的維護者表示,該漏洞源于對 YAML 的不安全決議,漏洞會在應用程式反序列化以 YAML 格式提供的 Keras 模型時,使攻擊者可以執行任意代碼,反序列化漏洞通常發生在應用程式讀取來自非真實來源的不良或惡意資料時,
這個 YAML 反序列化漏洞的嚴重程度被評為 9.3 級,由安全研究員 Arjun Shibu 報告給 TensorFlow 維護者,

這個漏洞的來源是 TensorFlow 代碼中臭名昭著的 "yaml.unsafe_load()" 函式,
安全研究員 Arjun Shibu 表示,"我在 TensorFlow 中搜索了 Pickle 和 PyYAML 的反序列化模式,令人驚訝的是,我發現了對危險函式 yaml.unsafe_load() 的呼叫,"
眾所周知,"unsafe_load" 函式可以對 YAML 資料進行相當自由的反序列化 —— 它決議了所有的標簽,即使是那些不受信任的輸入上已知不安全的標簽,該函式直接加載 YAML 輸入而不對其進行清理,這使得使用惡意代碼注入資料成為可能,
序列化的使用在機器學習應用中非常普遍,訓練模型是一個昂貴且緩慢的程序,因此,開發人員經常使用預先訓練好的模型,這些模型已經存盤在 YAML 或 TensorFlow 等 ML 庫支持的其他格式中,

在該漏洞被披露后,TensorFlow 的維護者決定完全放棄對 YAML 的支持,而使用 JSON 進行反序列化,
值得注意的是,TensorFlow 并不是第一個、也不是唯一一個被發現使用 YAML unsafe_load 的專案,該函式的使用在 Python 專案中是相當普遍的,
TensorFlow 的維護者表示,CVE-2021-37678 漏洞將于 TensorFlow 2.6.0 版本的更新中進行修復,并且還將被回傳到之前的 2.5.1、2.4.3 和 2.3.4 版本,自年初以來,Google 已經在 TensorFlow 上修復了 100 多個安全漏洞,
近期熱文推薦:
1.1,000+ 道 Java面試題及答案整理(2021最新版)
2.別在再滿屏的 if/ else 了,試試策略模式,真香!!
3.臥槽!Java 中的 xx ≠ null 是什么新語法?
4.Spring Boot 2.5 重磅發布,黑暗模式太炸了!
5.《Java開發手冊(嵩山版)》最新發布,速速下載!
覺得不錯,別忘了隨手點贊+轉發哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/299326.html
標籤:其他
上一篇:為了每天準時看到冰冰,我用Python寫了個自動提醒腳本,美滋滋!
下一篇:DMA 與零拷貝技術
