Python依赖库Numpy曝出远程代码执行漏洞

Track-SSG   ·   发表于 2019-01-28 10:43:44   ·   漏洞文章

22.png

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。

该依赖


打赏我,让我更有动力~

0 条回复   |  直到 2019-1-28 | 1015 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.