在CPython中编译不受信任的代码是否安全?

时间:2016-05-30 09:12:17

标签: python security python-3.x

在Python中,可以在不执行的情况下编译Python脚本(在C中使用py_compile模块,Py_CompileString

很多内容都是关于试图打包CPython的问题(以及它有多难),但是,我有兴趣知道编译 CPython代码中是否存在已知的安全风险(不执行其内容)。

换句话说,运行时是否已知安全休息:

python -m py_compile file_from_unknown_source.py

在这种情况下,一个坏的演员可能能够在解析器或字节码生成器中找到漏洞,我的问题是关于这个以及是否有已知的漏洞来执行这样的任务,或者这通常被认为是安全的。< / p>

出于这个问题的目的,安全意味着:

  • 无法运行任意Python代码或shell命令。
  • 无法删除,创建或访问文件
    (当然,除了编译的pyc
  • 无法在系统上使用网络连接。

简而言之,除了编译代码之外,不要执行任何,或者无法使用无效输入进行编译。

1 个答案:

答案 0 :(得分:0)

不,这不安全。 CPython有很多已知的错误,导致堆栈溢出和其他恶劣的条件。 SIGSEGV应被视为可能被利用。