如果你发现了可能影响安全的问题(例如远程代码执行、权限绕过、信息泄露、DoS 等),请不要直接公开发 Issue。
请通过邮件私下报告:1093993119@qq.com
邮件建议包含:
- 漏洞描述与影响范围
- 复现步骤或 PoC(如方便请提供最小复现)
- 受影响版本/提交信息
- 可能的修复建议(可选)
- 我们会尽快确认收到并进行复现与评估。
- 修复完成后,会在发布说明中注明安全修复(必要时为受影响用户提供升级建议)。
以下说明默认威胁模型:攻击者可连接对外服务、可访问与业务同权的消息总线或 etcd,除非你在部署层做了隔离。框架层不替代网络 ACL、mTLS、密钥管理。
zbus.DefaultBus上的载荷为明文字节,框架不对跨进程Message做签名或 MAC;能够向 topic 写入的实体,等价于能向 Actor 注入任意反序列化后的信封(若与你的业务处理逻辑结合,风险由业务评估)。- 建议:对消息中间件启用认证与授权、topic 隔离、TLS;仅将总线暴露在内网或零信任网络内。
- Discoverer 所读写的注册信息若被篡改,可能导致流量被导向错误实例。建议:etcd 访问控制、TLS、只信最小权限的客户端证书。
- 默认行为:若
EngineConfig.ScriptDir为空,require()会失败(防止无目录沙箱时任意读文件)。生产环境请始终设置ScriptDir,将可加载脚本限制在固定根目录下。 - 历史兼容:仅当你明确接受风险时,可设置
EngineConfig.AllowRequireWithoutScriptDir = true(legacy:require路径按filepath.Abs解析,相对路径依赖进程工作目录,且无目录沙箱)。 - 向脚本暴露的宿主 API 应最小化;脚本超时、内存等仍由
EngineConfig约束。
- 熔断状态按 「当前发送方 Actor 实例 × 目标 actorId」 维护,不是进程级或「目标服务全局」熔断。多源 Actor 同时调用同一下游时,彼此计数不共享;若需要全局限流,应在业务或网关层额外实现。
- 示例客户端可能出现「跳过证书校验」等选项(如
-gmInsecure),仅用于本地/演示;生产环境必须校验证书与主机名。
- 勿提交:
logs/、*.log、.env、IDE 元数据、含真实密钥的配置。示例证书若保留在仓库中,须仅为演示用途,并在示例 README 中注明禁止用于生产。