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相关推荐

  1. Drupal 修复远程代码执行漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 周三,Drupal 内容管理系统 (CMS) 发布更新,修复了和不正确清理所上传文件名称有关的一个远程代码执行漏洞 (CVE-2020 ...

  2. Android APP代码执行历史漏洞与攻击面分析

    文章目录 前言 错误的反射调用 漏洞根源分析 漏洞防御建议 反射调用思考 CVE-2020-8913 漏洞根源分析 动态加载Dex "寄生兽"漏洞 TikTok APP漏洞 代码执 ...

  3. IE浏览器远程代码执行高危漏洞(CVE-2019-1367)

    IE浏览器远程代码执行高危漏洞(CVE-2019-1367)加固遇到的问题 一.背景介绍 Internet Explorer,是微软公司推出的一款网页浏览器.用户量极大.9月23日微软紧急发布安全更新 ...

  4. Windows RDP远程代码执行高危漏洞加固指南

    漏洞信息 序号 漏洞类型 风险等级 漏洞主机( 操作系统及版本) 1 Windows RDP远程代码执行高危漏洞 高 Windows     2. 漏洞加固实施 漏洞1:Windows RDP远程代码 ...

  5. Fastjson 爆出远程代码执行高危漏洞,更新版本已修复

    漏洞介绍 fastjson在1.2.24以及之前版本近日曝出代码执行漏洞,当用户提交一个精心构造的恶意的序列化数据到服务器端时,fastjson在反序列化时存在漏洞,可导致远程任意代码执行漏洞. 风险 ...

  6. 西门子修复热门 CAD 库中的多个代码执行高危漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 本周二,西门子发布安全公告,通知客户称其 Solid Edge 产品受多个高危漏洞影响,这些漏洞是由很多其它组织机构都在使用的第四方软件引 ...

  7. Python 紧急修复远程代码执行漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 Python 软件基金会 (PSF) 紧急推出 Python 3.9.2 和 3.8.8 稳定版,解决两个严重的安全缺陷,其中一个从理 ...

  8. 火狐浏览器服务器意外响应,Firefox 火狐浏览器 83 发布,已修复任意代码执行漏洞...

    火狐浏览器 (Mozilla Firefox)是 Mozilla 基金会的产品 , 它是一款开源 Web 浏览器 , 引擎反应快 , 内存占用少.Firefox 从 2005 年开始,每年都被媒体选为 ...

  9. php定时执行代码漏洞_在CTF比赛中发现的PHP远程代码执行0day漏洞

    众所周知,CTF比赛都是人为构造漏洞环境,人为制造安全漏洞,供安全从爱好者研究,好磨练和增强自己的安全技能. 参加CTF比赛,通常你需要明白出题人的想法,按照出题人的意图来解开谜题. 但是,就像所有的 ...

最新文章

  1. 盘点COVID-19新冠药物和疫苗研发进展
  2. arcgis 同名图层合并_ArcGIS实践教程(37)ArcGIS/ArcMap多个图层(要素类)的合并
  3. php向指定文件发送消息,PHP-将文件发送给用户
  4. 鸟哥的Linux私房菜(基础篇)-第一章、Linux是什么(一.3. Linux的特色)
  5. 基于Linux的嵌入式浏览器的实现
  6. 在Eclipse上创建JSF / CDI Maven项目
  7. 注意html的语言编码charset,HTML编码
  8. 9th, Jan 2012 养成好的生活习惯真的很不容易
  9. leetcode题库174 地下城游戏
  10. 【图像修复】基于matlab GUI运动模糊消除(逆滤波)【含Matlab源码 847期】
  11. 亲测:三个值得练手的Java实战项目
  12. 二维码生成器如何制作圆形二维码
  13. 2020《互联网周刊》年度评选结果揭晓, Smartbi获三项行业大奖
  14. 常用大数据核心技术有哪些?
  15. 使用Unity创建一个游戏场景
  16. sitecore系统教程之内容编辑器
  17. 完蛋!面试官问我 InnoDB 的物理存储结构!
  18. chrome浏览器缓存 from disk cache
  19. 在Windows中添加右键菜单选项及快捷键(转)
  20. 知识图谱 ——知识存储与检索

热门文章

  1. 成功解决on line , but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
  2. Excel:python结合Excel使用技巧经验总结之(将python输出的等间隔列数据直接粘贴复制存到物理表格内等)图文教程之详细攻略
  3. AI:2020年6月21日北京智源大会演讲分享之20:05-20:25陶建华《人工智能学科设置与人才培养》、雷明《企业对人工智能人才的要求以及对人工智能人才培养的建议》
  4. 成功解决ValueError: Parameter values for parameter (n_estimators) need to be a sequence.
  5. DL之DNN优化技术:自定义MultiLayerNetExtend算法(BN层使用/不使用+权重初始值不同)对Mnist数据集训练评估学习过程
  6. TF学习——Tensorflow框架之基础概念、设计思路、常用方法之详细攻略
  7. 成功解决AttributeError: module 'tensorflow.contrib.data' has no attribute 'TextLineDataset'
  8. YOLO:将yolo的.weights文件转换为keras、tensorflow等模型所需的.h5文件的图文教程
  9. 成功解决Ubuntu下的make: gcc: Command not found Makefile:85: recipe for target 'obj/gemm.o' failed make: **
  10. Python中斐波那契数列的四种写法