代码有执行漏洞,弃YAML用JSON?网友:YAML不背锅!
文|Travis
出品|OSC开源社区(ID:oschina2013)
Tensorflow是一个基于Python的机器学习和人工智能项目 , 该项目由Google开发 。 近日TensorFlow已经放弃了对YAML的支持 , 以修复一个关键的代码执行漏洞 。 
文章图片
YAML或YAMLAin'tMarkupLanguage是一种人类可读的数据序列化语言 , 用于在进程和应用程序之间传递对象和存储数据 , 许多Python应用程序都使用YAML来序列化和反序列化对象 。
该漏洞的CVEID为CVE-2021-37678 。 TensorFlow和Keras(TensorFlow的一个封装项目)的维护者表示 , 该漏洞源于对YAML的不安全解析 , 漏洞会在应用程序反序列化以YAML格式提供的Keras模型时 , 使攻击者可以执行任意代码 。 反序列化漏洞通常发生在应用程序读取来自非真实来源的不良或恶意数据时 。
这个YAML反序列化漏洞的严重程度被评为9.3级 , 由安全研究员ArjunShibu报告给TensorFlow维护者 。 
文章图片
这个漏洞的来源是TensorFlow代码中臭名昭著的''yaml.unsafe_load()''函数 。
安全研究员ArjunShibu表示 , ''我在TensorFlow中搜索了Pickle和PyYAML的反序列化模式 , 令人惊讶的是 , 我发现了对危险函数yaml.unsafe_load()的调用 。 ''
众所周知 , ''unsafe_load''函数可以对YAML数据进行相当自由的反序列化——它解析了所有的标签 , 即使是那些不受信任的输入上已知不安全的标签 。 该函数直接加载YAML输入而不对其进行清理 , 这使得使用恶意代码注入数据成为可能 。
序列化的使用在机器学习应用中非常普遍 。 训练模型是一个昂贵且缓慢的过程 。 因此 , 开发人员经常使用预先训练好的模型 , 这些模型已经存储在YAML或TensorFlow等ML库支持的其他格式中 。 
文章图片
在该漏洞被披露后 , TensorFlow的维护者决定完全放弃对YAML的支持 , 而使用JSON进行反序列化 。 值得注意的是 , TensorFlow并不是第一个、也不是唯一一个被发现使用YAMLunsafe_load的项目 。 该函数的使用在Python项目中是相当普遍的 。
TensorFlow的维护者表示 , CVE-2021-37678漏洞将于TensorFlow2.6.0版本的更新中进行修复 , 并且还将被回传到之前的2.5.1、2.4.3和2.3.4版本 。 自年初以来 , Google已经在TensorFlow上修复了100多个安全漏洞 。
低代码成主流
中国或超美国成为行业领导者?
【代码有执行漏洞,弃YAML用JSON?网友:YAML不背锅!】今日最新资讯来啦!
关注视频号“开开开源”
带你了解更多开源知识
【来源:开源中国】
版权归原作者所有 , 向原创者致敬
- 踩线|主播不“踩线” 直播才有未来
- 有人觉得中暑就是热出来的,吃一些退烧药就好了,这种做法 蚂蚁庄园今日答案6月28日
- 位于广东省阳江市的海陵岛自然资源丰富,景色优美,该岛没有 神奇海洋6月28日答案
- 我国首个海洋油气装备投产!还有一批重大工程取得新进展→
- 你用过的头像都成了明星,林彦俊走红网络,只有她默默无闻
- 物体做曲线运动时法向加速度有可能为0吗?
- 土星环比恐龙还要年轻?这些宇宙冷知识很少有人知道
- 太阳系有两个“太阳”,科学家提出“太阳伴侣”假说,它终会回来
- 英特尔|两倍变焦自拍能有多大区别?苹果、三星、OPPO自拍样张解析
- 高通骁龙|夏天一到骁龙8Gen1没怎么玩就发热?Find X5 Pro用户最有发言权
