Nuki 目前处于早期预览阶段(v0.1.x-alpha)。我们只对最新的 minor 版本提供安全更新。
| 版本 | 支持情况 |
|---|---|
| 0.1.x | ✅ 接受安全报告 |
| < 0.1 | ❌ 请升级到最新版本 |
如果你发现了 Nuki 的安全问题,请不要直接在 GitHub Issues 公开——给作者一些时间修复。
披露渠道:邮件 rui.li.buaa@gmail.com
主题建议写:[Nuki Security] <一句话概括>
正文请尽量包含:
- 受影响的版本和操作系统
- 漏洞类型(命令注入、本地文件越权、IPC 越权、密钥泄漏 等)
- 最小复现步骤
- 已知影响(能拿到什么、能改什么)
- 你希望被署名的方式(可选)
作者是业余时间维护这个项目,但会尽量做到:
- 3 个工作日内确认收到
- 14 个自然日内给出初步评估和修复时间表
- 修复发布后30 天内公布漏洞细节(你也可以要求更长的禁言期)
下面这些是 Nuki 在架构上的安全承诺,任何打破它们的 PR 都不会被合入:
- API key 只存本地:用户填的 OpenAI/DeepSeek 等 API key 只写入
app.getPath('userData')/settings.json,不上传任何外部服务,不写入 audit 日志,不打印到 console。 - 窄白名单 IPC:每个窗口的 preload 只暴露该 feature 真正需要的几个 IPC 方法,不暴露
ipcRenderer全体。 - 不引入 telemetry:Nuki 不上报任何使用统计,包括崩溃日志。所有 audit 日志只写本地。
- 离线优先可行:用户可以配 Ollama / 本地模型,所有 feature 必须能在完全断网情况下跑通(即使质量下降)。
- 文件读取限于用户主动选择的文件:
docs/extract.ts/folder-report/scan.ts只读用户通过 Open Dialog / Drag-Drop 显式选择的路径,不主动扫描整盘。
- 第三方 LLM:你填的 Base URL 指向 OpenAI / DeepSeek 等服务时,你发送的文本会被该服务商按其自有条款处理。如果是机关敏感文档,建议用 Ollama 本地模型(见
docs/offline-models.md)。 - PDF / DOCX 解析依赖:Nuki 用
pdf-parse、mammoth、xlsx等第三方库解析用户文档。这些库历史上出过 CVE。你拖入不受信任来源的文件时,请自行评估风险。 - Watcher 是用户自己写的 URL:HTTP / RSS Watcher 会按你写的 URL 发请求(带 30s 超时 + 1MB 上限 + 固定
NukiWatcher/0.1UA)。如果你把内网管理后台的 URL 写进去,Nuki 就会去请求它——这是 by design,不视为 SSRF 漏洞。别把不受控的 URL 让别人帮你导入 watchers.json。 - 桌面应用是本地完整权限的程序:和任何 Electron 应用一样,如果你的电脑被入侵,Nuki 写在 userData 下的 API key / 文档摘要也会暴露。请保护好你的设备。
未来负责任披露漏洞的研究者,作者会在 CHANGELOG.md 致谢区列出(除非你要求匿名)。