安全研究
安全漏洞
Python Pickle类构造器远程任意代码执行漏洞
发布日期:2002-07-26
更新日期:2002-07-26
受影响系统:Python Software Foundation Python 2.1.3
Python Software Foundation Python 2.1.2
Python Software Foundation Python 2.1.1
Python Software Foundation Python 2.1
Python Software Foundation Python 2.0.1
Python Software Foundation Python 2.0
Python Software Foundation Python 1.6.1
Python Software Foundation Python 1.6
Python Software Foundation Python 1.5.2
不受影响系统:Python Software Foundation Python 2.2.1
Python Software Foundation Python 2.2
描述:
BUGTRAQ ID:
5257
Python是一款开放源代码的,面向对象的程序设计语言。Python提供一个称为pickle的标准模块,可以把Python对象转换为字符串表示,这个过程称为"pickling",而从对象的字符串表示恢复对象称为"unpickling"。
pickle模块的实现在"unpickling"过程缺少对数据数据的检查,远程攻击者可以利用这个漏洞以Python应用程序进程执行任意Python命令。
Python可以调用构造器进行从对象的字符串表示恢复对象的操作,类必须定义attribute __safe_for_unpickling__为真值,否则就会出现异常,因为类构造器是一个简单的调用对象,一Pickle可以以任何函数命名并提供任意参数,因此构建包含类似如下指令"echo r00t::0:0::/:/bin/sh >> /etc/passwd"为参数的pickle类可以导致以Python应用程序进程执行任意Python命令。
此漏洞的利用比较高的依靠Python应用程序是否可以接收来自外部提供的"pickle"字符串。
<*来源:Jeff Epler (jepler_at_unpythonic.net)
链接:
http://archives.neohapsis.com/archives/bug...02-07/0188.html
*>
建议:
厂商补丁:
Python Software Foundation
--------------------------
目前厂商已经在Python 2.2以上版中修复了这个安全问题,请到厂商的主页下载:
http://www.python.org/浏览次数:3573
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载 绿盟科技给您安全的保障 |