| 版本 | 是否接受安全修复 |
|---|---|
0.1.x(当前 main) |
✅ |
| 更早版本 | ❌(本项目尚未发布 1.0,请直接用最新 main 或最新 tag) |
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 等外部环境引入的问题