Repository navigation
build(security): Dependabot 54 条批量处置——四线升级 + 2 条有据 dismiss(I-239) - #1218
Conversation
…39); pyjwt>=2.15.1(一步到位:2.14.0 紧凑编码校验误杀尾部 '=' 填充 token)、 litellm>=1.89.7、aiohttp>=3.14.4、urllib3>=2.8.0、mako>=1.4.2 抬地板; 新增 anyio>=4.14.2(critical CVE-2026-63374 IDNA TLS 欺骗)与 mcp>=1.30.0,<2.0.0(mcp 2.0.0 已移除部分 SDK 表面,上界防跳)。 uv lock 收敛升级 11 包(litellm 锁 1.89.7、multidict <7、soupsieve <3 防裸升 major / 跨 17 minor);opentelemetry-api 保持 1.41.1——google-adk 全系 pin <=1.42.1 堵死(#1013 已有据 dismiss)。logged_stdio_client 依赖的 mcp.client.stdio 七个私有符号已逐一核验存活;tests/unit_tests 2991 passed。 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
…清偿 2 条告警 (I-239); katex 0.16 线无 GHSA-238p-pmpm-9mq7 修复版(fixed 0.18.2),rehype-katex 7.0.1 与 micromark-extension-math 均声明 katex ^0.16.0,全局 override '>=0.18.11 <0.19.0' 压过两处上界(renderToString 签名与 KatexOptions 字段集 0.16→0.18 未变,remarkjs/remark-math#121 社区实测通过;rehype-katex 8 发布 后移除)。0.18.0 将 20 个内部 CSS 类名加 katex- 前缀,唯一命中 ui globals.css 暗色适配四处选择器(.overline/.underline/.hline/.root → .katex-*,子线类 .overline-line 等不改名)。@types/katex 0.16.8 留树不冲突(0.18 自带 types)。 根 lock 顺手同修 fast-uri 3.1.2→3.1.9(ajv 传递,防下轮告警)。ui 全链 (lint/typecheck×2/test:coverage)与 wiki 全链(lint/test 122/build)通过, 渲染冒烟确认 katex-base/katex-hline/katex-tag 前缀类落位。 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
…I-239); GHSA-hrr3-gc8f-f4qj(fast-uri < 3.1.8,medium):各分集经 ajv 传递引入 3.1.7,15 个 video/pnpm-workspace.yaml overrides 段加 fast-uri: '>=3.1.8 <4.0.0'(闭区间防 major 跳跃,与仓库根同口径,I-237 同型),逐集 pnpm install --lockfile-only 重锁,落点核对全部 3.1.9; agent-skills-video 完整 install 通过(node_modules 健康)。 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
本地实跑 pip-audit 暴露 10-23 后新入库、CI 尚未撞上的 advisory 批(push paths 触发必红):fastmcp 3.2.4→3.4.11(GHSA-7xgj-8392-5q4r,主段地板抬 3.4.10,3.4 拆出 fastmcp-slim 子包)、authlib 1.7.2→1.9.1(CVE-2026-96760 + 114614..114620)、filelock 3.25.2→4.2.4(CVE-2026-112907/112913/112940, FileLock API 3→4 兼容)、msgpack 1.2.4、setuptools 84.2.1、dnspython 2.9.0 (email-validator 传递),override 地板随注;litellm 1.96.2 的 CVE-2026-114612 仅 EXPERIMENTAL_UI_LOGIN=true 触发(默认 false),走 ignore_args 豁免、随 litellm 新线升级清偿。transformers/pyjwt 等 ignore 项 维持既有口径(#769 已 dismiss)。裸跑 pip-audit 剩余条目 ⊆ ignore 集, pytest 全绿。 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
CI 三平台同挂该用例:method="auto" 优先走 run_webpage_pipeline(anti_detection 阶段),runner 上 stealth 工具可用且 error-test.com 真实可解析 → 管线真实 抓取成功 → result.success=True,断言 assert success is False 失效;本地过 靠的是工具不可用(环境性通过,mock 的 web_scraper 从未被管线路径触达)。 patch 管线入口强制降级 legacy 路径,用例真正覆盖「网络错误优雅处理」意图, 与运行环境解耦。lock diff 未触碰 anti_detection 链路依赖,属存量缺陷被本 PR CI 暴露。 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
…39); GHSA-g5ff-637f-6q2m(High,任意文件读,10-27 入库)影响 <1.95.0 全线、 1.89.2 基线同样中招,本 PR 的版本变化使 litellm 进入 delta 审查视野、 Dependency Review(fail-on-severity: high)拦下。收敛升到修复线 1.95.1 (不跳 1.106,158 包无新增依赖涟漪);instrumentation 的 OpenTelemetry callback 与 completion_cost 面实测未变,tests/unit_tests 2991 passed。 残留 GHSA-7hp6(EXPERIMENTAL_UI_LOGIN 条件触发,默认 false 缓解)。 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
…清偿 + perceives CI 环境耦合用例修复记录 (I-239); 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
CI 事件管道故障说明与验证替代证据2026-10-28 15:10 UTC+8 起,GitHub
Dependency Review Guard(无 事件恢复后任意 push/rebase 或 re-run 即可补全 checks。 |
… I-240; 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
…-240); GHSA-7hp6-4w63-5g45(High,proxy_admin salt-key 提权)range 覆盖至 <1.100.4——1.95.1 仍在范围内被门二次拦下(该门对 delta 中版本变化的包按 新版本评估全部适用 advisory,修复升级须一次跨出全部 range)。收敛升到 修复线 1.100.5(连带 boto3/botocore/jmespath/s3transfer 4 个 Bedrock 标配传递包);OpenTelemetry callback 与 completion_cost 面实测未变, tests/unit_tests 2991 passed。litellm backend 侧 advisory 至此全清, perceives 侧 1.96.2 经 pip-audit ignore 覆盖随生态升级清偿。 🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist) Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
✅ CI 全绿收口事件管道恢复后全部 checks 通过( Dependency Review 的两次拦截(litellm GHSA-g5ff → 1.95.1、GHSA-7hp6 → 1.100.5)均已收敛至修复线清偿,backend 侧 litellm advisory 至此全清。PR 可合并。 |
摘要
处置 Dependabot 全部 54 条 open 告警。动手前已对账:master 与 feature/1.x.x 的全部 manifest 完全一致(两分支仅差 7 个 docs 提交),无一条是「已修待发布」幻象——51 条实际清偿、2 条有据 dismiss、1 条 OTel 上游堵死归档。
告警对账
opentelemetry-api<=1.42.1(adk-python#6421 跟踪,main 已抬至 <=1.44);攻击向量不可达——全后端无入站 tracestate 提取(litellm/google-adk 的 carrier 只含 traceparent)。perceives 侧同一 CVE 已经 I-237 修复(fastmcp 路径无 google-adk 阻塞)'>=3.1.8 <4.0.0',落点 3.1.951 条升级类告警随本 PR 合入 feature/1.x.x → 发布列车抵达 master 后由 Dependabot 自动关闭。
关键决策与依据
=填充 token([BUG]: Canonical Base64URL check rejects AWS ALB JWTs jpadilla/pyjwt#1209),2.15.1 放宽;2.14/2.15 均无 API breaking,backend 应用层零直接 import jwt(鉴权为自研 HMAC token,pyjwt 仅为 mcp 传递依赖)。<2.0.0:mcp 2.0.0 已发布且移除部分 SDK 表面;1.30.0 与 1.29.1 无 session/stdio API 签名变化,logged_stdio_client依赖的 7 个mcp.client.stdio私有符号已逐一 import 核验存活。renderToString(签名 0.16→0.18 未变);0.18.0 唯一实质破坏是 20 个内部 CSS 类名加katex-前缀,全仓唯一命中 ui globals.css 暗色适配四处选择器(已同步改);pnpm 单一 override 恰好规避 Streamlit 踩过的 markup/CSS 双版本分裂。EXPERIMENTAL_UI_LOGIN=true触发(默认 false)走 ignore。验证
uv run pytest tests/unit_tests/2991 passed;mcp/FastMCP API 面核验通过已知残留(follow-up,不阻塞)
🤖 Generated with Claude Code