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

Closed

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. added
    domain:devxDomain lane — seat card indexed by label:pm:seat
    dependenciesPull requests that update a dependency file
    pm:queueReady for the PM dispatch loop
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    on Aug 3, 2026
  2. 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

  3. 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

Labels

ci/cddependenciesPull requests that update a dependency filedomain:devxDomain lane — seat card indexed by label:pm:seatpm:dispatchedDispatched to a dev agent by /pm-dispatchpm:queueReady for the PM dispatch loop

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions