Skip to content

Security: ZengZichao/FigTreeKit-Studio

SECURITY.md

Security Policy

Supported versions

本项目处于 Alpha 阶段,仅对最新发布版本提供安全修复。

版本 受支持
0.1.x(当前发布线) ✅
< 0.1.0 ❌

报告漏洞

请不要用公开 Issue 报告安全问题。

首选方式:使用 GitHub 隐私漏洞报告 (Security → Report a vulnerability,路径: https://github.com/ZengZichao/FigTreeKit-Studio/security/advisories/new)。 该渠道只有你与维护者可见。

若无法使用该渠道,可邮件联系 zengzichao@sjtu.edu.cn,标题请写明 [SECURITY] FigTreeKit Studio,并说明:

  • 受影响的版本与复现步骤
  • 你的操作系统、Python 版本、figtreekit 版本、java -version 输出
  • 可能的实际影响(尤其是能否被其他本机进程利用)

请给出合理的修复时间窗。修复发布后我们会在 advisory 中致谢, (若你希望匿名则不署名)。

本项目的攻击面

这是一个在本机运行的桌面应用:启动一个绑定回环地址(127.0.0.1)的 本地 HTTP 服务,并按需调用 java -jar 渲染。因此历史上出现过、也最值得 重点关注的几类问题是:

  1. 非回环绑定:--host 必须显式配合 --allow-remote-bind 才能绑定 全部网卡。绕过该开关、或让它在非预期场景下被静默启用,会把本地服务 暴露到局域网。
  2. 本机任意进程访问:回环服务对同机其他用户/进程开放。若服务中存在 路径穿越或命令注入,等于任何本机进程都能触发。
  3. 命令注入:导出功能会把参数拼进命令行。任何来自 HTTP 请求体的值 (Newick 文本、颜色值、字体名等)进入 shell 解析路径都属高危。
  4. 请求体大小与资源耗尽:本机进程可以持续发起渲染请求。每次渲染都会 启动一个 JVM,未设上限即可耗尽 CPU 与内存。

上述四类均有对应的回归测试(见 tests/test_hardening.py), 若发现绕过,请一并说明是哪个断言没有覆盖到。

已知的许可证事项

NOTICE 中记录的第三方授权问题(iText 的 AGPL-3.0 与本项目 GPL-2.0-or-later 的兼容性)属于合规事项而非漏洞。若你对此有更清晰的法律判断,欢迎通过上述 渠道联系。

There aren't any published security advisories