日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

为修复一个代码执行安全漏洞,TensorFlow决定不再支持YAML

發布時間:2025/3/21 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 为修复一个代码执行安全漏洞,TensorFlow决定不再支持YAML 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TensorFlow是谷歌開發的基于Python的機器學習和人工智能項目。為修復一個代碼執行安全漏洞,TensorFlow決定不再支持YAML。YAML(Yet Another Markup Language)是一個可讀性高,用來表達數據序列化的格式。YAML參考了其他多種語言,包括C語言、Python、Perl,并從XML、電子郵件的數據格式。

CVE-2021-37678:TensorFlow不可信反序列化漏洞

安全研究人員Arjun Shibu在TensorFlow和Keras中發現了一個安全漏洞——CVE-2021-37678。該漏洞是由于不安全處理YAML引發的不可信反序列化漏洞,攻擊者利用該漏洞可以在應用反序列化YAML格式中的Keras模型時執行任意代碼。該YAML反序列化漏洞CVSS 評分為9.3分。反序列化漏洞主要發生于應用從不可信的源讀取偽造的或惡意數據的情況。應用在讀取和反序列化數據后,可能會引發DoS攻擊條件甚至執行攻擊者的任意代碼。

漏洞來源于TensorFlow的yaml.unsafe_load()函數:

TensorFlow中有漏洞的yaml.unsafe_load()函數調用

unsafe_load函數的作用是反序列化YAML數據,該函數會解析所有的標簽,包括來自不安全或不可信的輸入。理想情況下,unsafe_load函數只有在輸入來源于可信源時被調用。但攻擊者利用通過在已經序列化的YAML數據中注入惡意payload來利用該機制執行代碼。

該漏洞的PoC利用代碼如下所示:

from tensorflow.keras import modelspayload = ''' !!python/object/new:type args: ['z', !!python/tuple [], {'extend': !!python/name:exec }] listitems: "__import__('os').system('cat /etc/passwd')" '''models.model_from_yaml(payload)

TensorFlow不再支持YAML

該漏洞提交后,TensorFlow決定啟用YAML支持,并使用JSON反序列化。

但TensorFlow并不是唯一使用YAML unsafe_load的項目,該函數被廣泛應用于Python項目中。GitHub顯示有上千個引用該函數的搜索結果,目前已經有開發者提出了解決方案:
![ GitHub上使用unsafe_load的檢索結果

目前,TensorFlow也已發布了該漏洞的補丁,受影響的版本和修復版本如下所示:](https://img-blog.csdnimg.cn/4885222dbadf4a3784552f9702935d66.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBASEJvaGFu,size_20,color_FFFFFF,t_70,g_se,x_16)


【網安學習資料】

總結

以上是生活随笔為你收集整理的为修复一个代码执行安全漏洞,TensorFlow决定不再支持YAML的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。