漏洞总结 漏洞概述 该提交修复了 项目中关于 profile 隔离(profile isolation) 的安全问题。核心漏洞在于:在切换 profile 时,之前 profile 的环境变量(如 API 密钥)未被正确清除,导致敏感信息可能泄露到新的 profile 上下文中。 影响范围 受影响文件: - - 影响场景: - 用户在不同 profile 之间切换时,前一个 profile 的 文件中定义的敏感变量(如 、 等)可能残留并影响当前 profile。 - 特别是在 调用时机不当的情况下,API 密钥可能在 profile 切换后仍被加载或未被清除。 修复方案 1. 调整 设置时机: - 在 中,将直接设置 的操作移至 之后,确保新 profile 的环境变量优先生效。 - 使用 替代之前的写法,避免被后续 覆盖。 2. 清理旧 profile 环境变量: - 在 的 函数中,增加逻辑: - 在加载新 profile 前,先清除之前 profile 加载的所有环境变量(通过 集合追踪)。 - 使用 逐个移除旧变量。 - 加载新 profile 后,更新 为新加载的键集合。 3. 增加测试用例: - 新增 ,验证: - 切换 profile 时,旧 profile 的变量是否被清除。 - 不同 profile 的变量是否互不干扰。 - 重叠变量名在不同 profile 中是否独立生效。 POC 代码(来自测试文件)