Skip to content

Security: Sapient610/minipython

Security

SECURITY.md

安全策略

支持范围

版本 是否接受安全修复
0.1.x(当前 main) ✅
更早版本 ❌(本项目尚未发布 1.0,请直接用最新 main 或最新 tag)

⚠️ 威胁模型:MiniPython 不是沙箱

MiniPython 会执行你给它的 Python 代码。请把运行 MiniPython 脚本等同于运行本机程序:

  • open() 可以按当前用户权限读写任意路径,没有任何目录限制
  • 脚本可以构造无限循环、超大容器、深递归(递归会被 RecursionError 拦住,但循环不会)
  • 因此:不要用它运行来源不可信的脚本。需要隔离请自行套容器/虚拟机/受限用户。

由 Rust 保证的内存安全使"越界读写/释放后使用"这类漏洞不在讨论范围内,但仍然关心下面这些。

报告漏洞(请走私密渠道)

请不要开公开 issue,用 GitHub 的私密报告入口:

👉 https://github.com/Sapient610/minipython/security/advisories/new

请包含:

  • 最小复现脚本(.py)+ 触发命令
  • 你观察到的结果(panic 消息、traceback、卡死、内存增长…)与期望结果
  • 版本/提交(git rev-parse --short HEAD)、Rust 版本、操作系统
  • 如果与安全影响有关(例如意外读写了不该碰的文件),说明影响范围

我会在 7 天内确认收到,并在修复后于 advisory 中致谢(除非你希望匿名)。

在范围内的问题

  • 解析器/词法器崩溃:畸形输入(非法缩进、超长嵌套、异常 f-string、极深括号)导致 panic 而不是报 SyntaxError
  • 求值器 panic:RefCell 借用冲突(already borrowed)、整数/索引运算溢出 panic、 越界索引 panic 等非受控的 Python 异常
  • 进程级崩溃:栈溢出绕过 RecursionError 保护、OOM/巨大分配绕过 MAX_REPEAT 之类的限制
  • 非预期的能力:能读取/写入不该访问的路径、能执行外部命令(当前实现没有任何执行外部命令的能力, 若你发现有,那是漏洞)
  • 资源耗尽:单行脚本即可让解释器无限占用内存/CPU 且无法中断

不在范围内

  • 「能运行任意 Python 代码」本身(这是解释器的功能,见上面的威胁模型)
  • 未实现特性的功能请求(yield/async/bytes/大整数……)→ 请走 issue 表单
  • 与 CPython 行为不一致但不影响安全的语义差异 → 请走缺陷报告模板
  • 第三方依赖漏洞:本项目零依赖,不存在这类问题
  • 通过 pip/系统 Python 等外部环境引入的问题

There aren't any published security advisories