Python著名开源包NumPy的默认用法存在严重漏洞库,一旦被攻击者利用,可在受害者的机器上远程执行代码。
该漏洞于1月16日曝出,影响到NumPy版本1.10(2015年发布)到1.16(目前最新的版本,1月14日发布)。目前该依赖库的开发者正努力修复漏洞。
NumPy是在实现科学计算中最流行的python库之一。同时也是通用数据的多维容器,可与多个数据库交互。
问题主要出现在“pickle”这个模块上,该模块的主要作用是将Python对象结构转换为可存储在磁盘或数据库中的格式,这样就可以通过网络传递。
安全研究员Sherwel Nan报告了这个问题。他表示,如果一个python程序通过“numpy.load”函数加载了恶意数据,攻击者就可以在受害者机器上远程执行代码。
默认情况下,可在npy文件中加载pickle处理后的对象数组。NumPy开发人员手册也清楚地提到了允许“pickles”所带来安全问题,“加载pickle处理后的数据可以执行任意代码。”但是,如果pickles被禁用,就无法再加载对象数组。
NumPy在版本1.10开始就引入了“allow_pickle”参数,开发团队也正在紧急修复。
Nan告诉BleepingComputer,当普通用户使用带有“allow_pickle”参数的“numpy.load”函数时,如果用户不能确定输入数据是否安全,则应将“allow_pickle”设置为“false”。
此外,该依赖库的维护人员还建议将Numpy 1.17中的“allow_pickle”参数的默认值更改为“false”,并在用户从网络导入数据集时发出警告,以便时刻提醒用户只有在完全信任输入数据的情况下能启用pickle。
NAN报告的这个漏洞现在被标记为CVE-2019-6446,并根据通用漏洞评分系统标记为严重,严重性评分为9.8/10。
该依赖
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.