<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          TensorFlow 因代碼執(zhí)行缺陷已棄用 YAML ,建議使用 JSON 來替代

          共 1589字,需瀏覽 4分鐘

           ·

          2021-09-10 14:42

          技術(shù)編輯:MissD 丨發(fā)自 思否編輯部

          公眾號:SegmentFault




          據(jù)外媒報道,由于安全缺陷,由谷歌提供的開源機器學(xué)習(xí)和人工智能項目—— TensorFlow 已經(jīng)放棄了對 YAML 的支持。在最新版本中,Google 已將 YAML 刪除,以解決不受信任的反序列化漏洞執(zhí)行問題。



          據(jù)悉,本次編號為 CVE-2021-37678 的漏洞 ,是由研究員 Arjun Shibu 提交給谷歌的,其嚴(yán)重程度較高,CVSS 得分為 9.3 。


          YAML 是一種更可讀的格式,用于表示數(shù)據(jù)序列化。研究人員發(fā)現(xiàn),當(dāng) TensorFlow 代碼加載 yaml.unsafe_load()函數(shù)時,攻擊者可通過該漏洞,在應(yīng)用程序反序列化 yaml 格式提供的 Keras 模型上執(zhí)行任意代碼。


          通常,反序列化漏洞容易發(fā)生在應(yīng)用程序從不真實的源讀取格式錯誤或惡意數(shù)據(jù)之時,此時 TensorFlow 中的反序列化漏洞,可能導(dǎo)致 DoS 崩潰或拒絕服務(wù)。更糟糕的是,此漏洞甚至可以執(zhí)行任意代碼。


          以上,就是為什么 “yaml.unsafe_load()” 函數(shù)漏洞的 CVSS 得分高達 9.3 分(滿分 10 分),且“臭名昭著”的原因。


          眾所周知,“unsafe_load” 函數(shù)反序列化 YAML 數(shù)據(jù)的方式相當(dāng)寬松,并可以解析所有標(biāo)記,包括已知不受信任的標(biāo)記。


          這意味著在理想情況下,unsafe_load 應(yīng)該只在沒有任何惡意內(nèi)容的可信源輸入上調(diào)用。否則,攻擊者則可以利用反序列化機制,通過將惡意負(fù)載注入到尚未序列化的 YAML 數(shù)據(jù)中,以執(zhí)行想要執(zhí)行的代碼。


          一項關(guān)于漏洞概念脆弱性咨詢的 PoC 示例,證實了這一點:


          從 tensorflow.keras 導(dǎo)入模型有效載荷 = ''' !!python/object/new:type args: ['z', !!python/tuple [], {'extend': !!python/name:exec }] listitems: "__import__('os').system('cat /etc/passwd')" ''' models.model_from_yaml(payload)


          正因為如此,在研究人員通知 Google 該漏洞后,TensorFlow 的維護人員決定完全放棄 YAML 的使用,轉(zhuǎn)而使用 JSON 反序列化。


          “鑒于 YAML 格式支持需要大量工作,現(xiàn)在我們已經(jīng)刪除了它,”同一項目咨詢中的維護人員稱,“引發(fā) RuntimeErrorModel.to_yaml()keras.models.Model_from_yaml 已被替換,因為它們可能被濫用而導(dǎo)致任意代碼執(zhí)行”。同時,維護人員解釋了與修復(fù)相關(guān)的發(fā)行說明。


          同時,維護人員還舉例說明了 YAML 導(dǎo)致的其他漏洞和修復(fù)。維護人員建議開發(fā)人員使用 JSON 反序列化而不是 YAML,或使用 H5 序列化等更好的替代方法。


          值得注意的是,TensorFlow 并不是唯一使用 YAML 不安全加載函數(shù)的項目。在 Github 上搜索可以發(fā)現(xiàn)大量 Python 項目使用該不安全函數(shù)。


          鑒于潛在的安全問題,研究人員建議,這些項目應(yīng)及時解決這個問題,使用這些項目的開發(fā)人員也應(yīng)注意安全。


          據(jù)了解,TensorFlow 有望解決版本 2.6.0 中的漏洞問題,即刪除 YAML 支持。屆時,2.5.1、2.4.3 和 2.3.4 的早期版本也將被修復(fù),使用該項目的開發(fā)人員也應(yīng)及時升級到最新版本。


          - END -

          瀏覽 40
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩欧美黄色电影 | 久久不卡| 天天看片中文字幕 | 国产一级婬片A片免费看狼牙 | 日韩免费一区 |