# 漏洞总结 ## 漏洞概述 该漏洞涉及 Python 包索引重定向环境变量(`fix(host-env)`)。攻击者可以通过请求作用域内的环境变量覆盖,将包获取请求重定向到恶意索引服务器,从而注入恶意软件包。 ## 影响范围 - 所有使用 OpenClaw 平台的用户 - 涉及以下环境变量的操作: - `PIP_INDEX_URL` - `PIP_PYPI_URL` - `PIP_EXTRA_INDEX_URL` - `UV_INDEX` - `UV_INDEX_URL` - `UV_EXTRA_INDEX_URL` - `UV_DEFAULT_INDEX` - `UV_EXTRA_INDEX_URL` ## 修复方案 1. **更新安全策略**:在 `src/infra/host-env-security-policy.json` 和 `src/infra/host-env-security-policy.generated.swc` 中添加对 Python 包索引相关环境变量的限制。 2. **代码变更**: - 在 `src/infra/host-env-security-policy.json` 中添加以下环境变量: ```json "PIP_INDEX_URL", "PIP_PYPI_URL", "PIP_EXTRA_INDEX_URL", "UV_INDEX", "UV_INDEX_URL", "UV_EXTRA_INDEX_URL", "UV_DEFAULT_INDEX", "UV_EXTRA_INDEX_URL" ``` - 在 `src/infra/host-env-security-policy.generated.swc` 中添加相同的限制。 3. **测试用例**: - 在 `src/infra/host-env-security.test.ts` 中添加测试用例,确保这些环境变量被正确限制。 - 测试用例包括: ```typescript expect(env.PIP_INDEX_URL).toBeUndefined(); expect(env.PIP_PYPI_URL).toBeUndefined(); expect(env.PIP_EXTRA_INDEX_URL).toBeUndefined(); expect(env.UV_INDEX).toBeUndefined(); expect(env.UV_INDEX_URL).toBeUndefined(); expect(env.UV_EXTRA_INDEX_URL).toBeUndefined(); expect(env.UV_DEFAULT_INDEX).toBeUndefined(); expect(env.UV_EXTRA_INDEX_URL).toBeUndefined(); ``` 通过这些措施,可以有效防止恶意用户通过环境变量重定向包获取请求,确保软件包的安全性和完整性。