6.4 KiB
2026-10-28 依赖安全更新与兼容性验证
审计结果
范围为主仓库声明的 Python、前端 npm、后台原型依赖及可识别的构建依赖。使用当日 PyPI/pip-audit、npm audit、OSV 和上游安全公告;没有忽略漏洞或降低检查级别。
| 范围 | 更新前 | 更新后 |
|---|---|---|
uv.lock 中全部 169 个 registry 包,含开发依赖及非 Windows 平台包 |
11 个包命中,97 条公告记录 | 0 条,未跳过包 |
| 前端 npm 锁文件 | 17 个受影响包:3 critical、11 high、3 moderate | 0 个受影响包 |
playground/backend_manager/requirements.txt 当日解析结果 |
54 个包,2 个包命中、3 条记录 | 52 个包,0 条,未跳过包 |
| Python 构建工具的当日解析结果 | — | setuptools 84.2.1、Cython 3.3.0,0 条 |
| Android Gradle Plugin 8.5.0 | — | OSV 直接包查询未检出公告;未解析完整 Gradle 构建工具传递依赖 |
公告可能含重复 ID 或别名,97 条不代表 97 个独立 CVE;npm 受影响包数也包含依赖链上的父包。零结果仅表示本次数据库未检出已知漏洞,不代表没有未知风险或业务安全问题。
远程 Python SDK 不含第三方运行时依赖;Android Helper 使用系统 API,不含第三方运行时库。独立 Artemis-Plugins 仓库、用户安装的插件、系统软件包和完整容器镜像不在上述零漏洞结论内。
版本调整
| 包 | 原版本 | 更新后 |
|---|---|---|
| openai | 3.3.0 | 3.40.0,沿用同日 SDK 更新 |
| langchain / langchain-core | 1.3.15 / 1.5.6 | 1.4.7 / 1.7.0 |
| langchain-openai | 1.5.2 | 1.7.3 |
| langgraph / langgraph-sdk | 1.2.11 / 0.4.2 | 1.2.18 / 0.4.10 |
| httpx | 0.28.1 | 保持 0.28.1,当日最新版 |
| httpx2 / httpcore2 | 2.12.0 | 2.16.0 |
| mcp | 1.29.0 | 1.30.0 |
| aiohttp | 3.14.3 | 3.14.5 |
| certifi | 2026.7.22 | 2026.10.23 |
| filelock | 3.32.3 | 4.2.4 |
| multidict | 6.7.1 | 7.2.1 |
| pillow | 12.3.0 | 13.0.0 |
| pyjwt | 2.13.0 | 2.15.1 |
| tornado | 6.5.8 | 6.6 |
| urllib3 | 2.7.0 | 2.8.0 |
| virtualenv | 21.7.4 | 21.15.1 |
| Angular framework / compiler-cli | 22.1.4 | 22.2.3 |
| Angular CLI / build | 22.1.6 | 22.2.4 |
| Angular CDK | 22.1.5 | 22.2.4 |
| Vite | 8.1.5 | 8.3.5 |
| Piscina | 5.2.0 | 5.3.2 |
| 原型 Nginx 基础镜像 | 1.27-alpine | 1.30.6-alpine |
langchain-community 0.4.2 和 langchain-mcp-adapters 0.3.2 保持不变。后者要求 MCP <2,因此主项目声明 mcp>=1.30.0,<2.0.0,使用兼容的 1.x 安全修复版本。其余联动升级见 uv.lock。
Angular build 22.2.4 仍精确依赖存在漏洞的 Vite 8.3.0,通过限定在 @angular/build 下的 npm override 使用 8.3.5,未使用 --force 或 --legacy-peer-deps。以后上游采用安全版本时可移除 override,重新审计并验证构建。
后台原型的 python-jose 3.5.0 和间接 ecdsa 0.19.2 没有可用修复版,改为 PyJWT[crypto]>=2.15.1,<3.0.0,保持算法白名单与 HTTP 401 错误处理。原型仍按 requirements 动态解析;该扫描结果不是所有旧镜像或旧安装环境的审计证明。
必要的适配
langchain-openai 1.7.x对没有错误详情的response.failed抛出ValueError("Response <id> failed.")。补充精确分类,保留INVALID_OUTPUT的有限重试;未把所有 ValueError 当成无效模型输出。- 补充失败流重试回归,验证不完整输出不会成为正式结论或工具动作,重试保留已有工具证据。
- Responses 模拟传输改用 OpenAI 默认使用的 httpx2,并修正测试夹具中
request同名遮蔽,确保超过 1 MiB 的中文工具参数确实经过分块 SSE/UTF-8 传输。 - 原型 JWT 回归覆盖签发、声明、当前用户、过期、错误签名、算法不匹配、无签名、畸形 token 和缺失 subject。
- MCP 的 audience 漏洞需要服务端配置配合,单纯升级不自动开启校验。本仓库没有配置
AuthSettings/token_verifier,当前不使用该 bearer-auth 路径;未来接入时必须同时设置validate_token_resource并提供正确的 token resource。
验证
- 隔离环境完整默认 Python 测试:3207 通过、6 跳过、8 排除;102 条现有 Pillow
getdata()弃用警告,该接口计划在 Pillow 14 移除。 - 随后改用 httpx2 的模型流、失败分类和 JWT 专项测试:41 通过;同步原
.venv后同一组 41 项再次通过。 - Ruff 格式/静态检查、质量基线、核心 Pyright 类型检查通过;Pyright 额外显式使用了升级后的解释器。
- 锁文件校验、升级环境
uv pip check、git diff --check通过。 - 前端 ChromeHeadless:336 通过;生产构建通过,生成产物不纳入提交。
- 主 Python、原型 Python、Python 构建工具及前端更新后复扫无已知漏洞。
- Nginx 1.30.6 为当日官方稳定修复版本,Docker Hub 标签存在且 active。已尝试构建原型镜像,但 Docker Hub registry/auth 连接超时,尚未完成容器构建和运行验证,也未扫描完整镜像内的 OS 包。
- 未调用付费模型、执行设备业务测试、发布提交或修改用户任务配置。
原始审计 JSON、解析清单和测试日志保存在本地被 Git 忽略的 artifacts/dependency-audit-20261028/。
生效
初次同步受到运行中服务占用 Pillow DLL 的阻止,已恢复旧环境并通过依赖一致性检查。用户随后明确表示已停止服务,原 .venv 已成功执行 uv sync --dev --locked 并再次通过版本核对与兼容性测试。
随后通过 artemis restart --no-open 恢复后台服务;/api/system/server-status 返回 running,首页 HTTP 200 且引用本次新前端构建。原环境全部 165 个已安装 distribution 的版本均与锁文件匹配。
本次沿用 ARTEMIS 2.3.0,按用户要求提交源码和锁文件,不发布。用户已明确无需构建 Docker,本次不再继续容器构建;修改 Dockerfile 不会更新已有容器。