Skip to content

CI red on every PR: Validate Package Dependencies fails on GHSA-rgw5-rvv9-x895 (brace-expansion 5.0.8 → 5.0.9) #4945

Description

@xuyushun441-sys

现象

Validate Package Dependencies(.github/workflows/validate-deps.yml 的 OSV 扫描)在当前 main 上就是红的,因此每个 PR 都带着这一条红。与被扫的 PR 内容无关 —— 在 #4944(只新增一个 scripts/*.mjs + 一个 workflow + 根 package.json 一行,未触碰 pnpm-lock.yaml)上复现:

+-------------------------------------+------+-----------+-----------------+---------+---------------+----------------+
| OSV URL                             | CVSS | ECOSYSTEM | PACKAGE         | VERSION | FIXED VERSION | SOURCE         |
+-------------------------------------+------+-----------+-----------------+---------+---------------+----------------+
| https://osv.dev/GHSA-rgw5-rvv9-x895 | 7.5  | npm       | brace-expansion | 5.0.8   | 5.0.9         | pnpm-lock.yaml |
+-------------------------------------+------+-----------+-----------------+---------+---------------+----------------+
Exit code: 1

失败 job:https://github.com/objectstack-ai/objectstack/actions/runs/30834560389/job/91756454199

影响

brace-expansion 是传递依赖(minimatch 一系),修法通常是一条 lockfile 层面的 pnpm.overrides 或 pnpm update 而不是改任何 manifest。

值得单独修的原因不是这一条 advisory 本身,而是一个长期红的必跑 job 会训练所有人无视它 —— 下一条真实的 advisory 到来时,它和今天这条在 PR 列表里长得一模一样。

建议

  1. pnpm update brace-expansion 或加 pnpm.overrides 把它顶到 5.0.9,单独一个 PR,只动 pnpm-lock.yaml(+ 必要时根 package.json 的 pnpm.overrides)。
  2. 顺带确认 validate-deps.yml 在 advisory 无可用修复版本时的表达方式 —— 一个无法修复的 advisory 长期把必跑 job 钉红,和没有扫描等价。

发现于 #3340 / PR #4944 的 CI,与该 PR 无关,按 Prime Directive #10 单独记录,未认领。

Activity

  1. xuyushun441-sys commented on Aug 3, 2026

    @xuyushun441-sys
    CollaboratorAuthor

    认领(PM 分派)—— 插队优先

    • session:session_018iARDqtrhQgz6fVHDeDkbQ
    • 分支:claude/issue-4945-brace-expansion-advisory
    • 车道:domain:devx(落点:pnpm-lock.yaml)

    插队理由:该 job 对每个触发它的 PR 都红(已实测挡住 PR #4944),属队列级阻塞;且一个永远红的 required 检查会训练所有人忽略下一条真实公告。


    Generated by Claude Code

  2. xuyushun441-sys commented on Aug 3, 2026

    @xuyushun441-sys
    CollaboratorAuthor

    实现完成 —— draft PR #4961

    • 分支:claude/issue-4945-brace-expansion-advisory
    • session:session_018iARDqtrhQgz6fVHDeDkbQ

    改法:pnpm-workspace.yaml 里既有那条 brace-expansion override 的一行,区间上界与 value 从 5.0.8 抬到 5.0.9。没有新增 override 条目,没有动根 package.json。lockfile 改动面就是这一个包 —— 5.0.8 的条目整体消失,minimatch@10.2.3 / 10.2.5 改指 5.0.9,其余依赖一行未动。

    根因值得记一笔:5.0.8 正是上一条 advisory(GHSA-mh99-v99m-4gvg)的 pin 停靠的位置,原区间上界恰好是开区间的 5.0.8,把新受影响的版本挡在了 override 之外。

    验证:本地用 workflow 钉住的同一个 scanner 版本(v2.3.8)双向验证 —— 改前 exit 1(输出与本 issue 逐字一致),改后 No issues found exit 0。远端 CI 上 Validate Package Dependencies 已绿,该 PR 全部 24 项检查通过(含 Test Core、TypeScript Type Check、ESLint)。

    未处理的建议 2(advisory 无可用修复版本时该 job 的表达方式)已拆为 #4965(未认领)—— 本 issue 随 PR 合并关闭后那条设计问题不至于被埋掉。

    PR 保持 draft,未开 auto-merge,等 PM 审后插队合。


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions