Repository navigation
Conversation
|
Windows 那条腿重跑通过了: 原始红灯是 fork 账号在 upstream 没有 rerun 权限,用一个空提交把 CI 重新触发了一轮来重跑,PR 上会多一个 ci 提交,内容无变化。 |
PeterGuy326
left a comment
There was a problem hiding this comment.
Reviewed. Clean, surgical, and correctly scoped — my only merges are the six brace-expansion entries.
What this does
- Refreshes
brace-expansionacross the three lines actually present inpackage-lock.json(1.x -> 1.1.21, 2.x -> 2.1.7, 5.x -> 5.0.12). All three are semver-compatible patch bumps and all land outside the advisories' vulnerable ranges. - Diff is confined to
package-lock.json, exactly 18 insertions / 18 deletions, touching onlyversion/resolved/integrityon the sixbrace-expansionentries.package.jsonis unchanged.
Why the manual lockfile edit is the right call
- Skipping
npm audit fix --package-lock-onlyavoids carrying an unrelated../design-systemvitest range rewrite (^3.2.4->^5.0.0) inside a security refresh. Keeping that line out makes this diff auditable as a pure dependency patch, and the version/integrity values were taken from the advisory'sfirst_patched_versionand the registry rather than hand-derived. - CI runs
npm ci, so the edited tree is validated on the runner.
Current CI state
- With #543 now on main (electron 43.7.6), the
electronadvisoryGHSA-qmv3-fv6v-rmhqis already closed. This PR closes the remainingbrace-expansionadvisories, so after this lands thenpm audit --audit-level=highgate should be fully green on both Node 24 legs. I verified Node 24 on ubuntu and macos pass on the current head.
Left alone on purpose, agreed with the body
vitest/@vitest/mocker(GHSA-82fw-gwwq-j7x9, moderate) — needsvitest@5.0.2, a breaking change; correct to defer to a deliberate dependency round, and--audit-level=highdoes not gate on moderate findings.
Approving. This also lets the fork PRs #536 and #540 that were blocked on the audit gate proceed on their own merits (they have a separate structural CodeQL block, reported separately).
One process note for the author, non-blocking: this repository does not enforce the nine-section governance body that digital-employee does, so the Closes #547 here is fine.
|
Closing as already incorporated by current main (#543). The current PR files list is empty, and package-lock.json has the identical Git blob 4868de69c24889de6f24004c9f104cd266343df5 on main and this head. There is no remaining dependency diff to merge. |
This PR does not turn the Node 24 legs green — but it does drop the high count
npm run security:checkrunsnpm audit --audit-level=high. Before this change the audit listed 4 findings: 2 moderate + 2 high:brace-expansioncarries three advisories —GHSA-q2hr-2g5m-vwhr(moderate, quadratic-time expansion of the{a},b}rewrite) plusGHSA-qhr7-859c-m2p7andGHSA-6j4f-fj2g-mc7p(both high, uncontrolled recursion in nested brace groups /parseCommaPartscausing stack exhaustion).electronGHSA-qmv3-fv6v-rmhq(high, needs43.7.6, outside the stated dependency range).This PR refreshes
brace-expansionto patched releases, which closes all three of its advisories — the two high ones included — so the high count moves 2 → 1 and the only high left iselectron:GHSA-qmv3-fv6v-rmhq—electron, high, needs43.7.6, outside the stated dependency range.So expect the
Node 24legs (ubuntu / macos) to stay red until the electron version policy is decided. That is the intended outcome here: every finding that can be closed without a version decision is now closed, and what remains needs a human call rather than a lockfile refresh. See #547.Summary
Refresh
brace-expansionto patched releases across all three major lines present inpackage-lock.json:1.1.181.1.21@electron/asar,dir-compare,glob2.1.42.1.7@electron/universal,filelist5.0.95.0.12Advisory
GHSA-q2hr-2g5m-vwhrcovers< 1.1.21,>= 2.0.0 < 2.1.7,>= 3.0.0 < 3.0.9,>= 4.0.0 < 5.0.12. This repo has no 3.x or 4.x entries. The bug is quadratic-time expansion of the{a},b}rewrite causing CPU denial of service —globandfilelistsit on test and packaging paths.All three are semver-compatible patch bumps.
package.jsonis unchanged; every edit is insidepackage-lock.jsonand touches onlyversion/resolved/integrityon the sixbrace-expansionentries (18 insertions, 18 deletions).Closes #547
A note on how the lockfile was edited
The obvious route is
npm audit fix --package-lock-only, and it produces these same six version bumps. It also rewrites one unrelated line: the recorded vitest range for../design-system, an out-of-tree workspace dependency, from^3.2.4to^5.0.0.That hunk is arguably correct —
../design-system/package.jsonalready declares^5.0.0— but it is someone else's dependency record, it is not what this PR is for, and carrying it here would make the diff of a security refresh harder to audit. The six entries were therefore applied directly from the advisory's publishedfirst_patched_versionvalues and their registryintegritydigests, leaving that line untouched.Explicitly left alone:
43.7.6, outside the declared range. Version policy; tracked separately.GHSA-82fw-gwwq-j7x9, moderate, needsvitest@5.0.2. Breaking; fold into the next deliberate dependency round. Note it is not currently blocking, since--audit-level=highdoes not gate on moderate findings.Verification
brace-expansionentry resolves to a version outside the advisory's vulnerable range:1.1.21,2.1.7,5.0.12.package.jsonchanged; diff is confined topackage-lock.json, 18 insertions / 18 deletions.git diff --checkpassed; LF endings preserved.integrityvalues were taken from the advisory and the registry, not hand-derived.npm ci, so the resolved tree is validated against the edited lockfile there.Release note / limitation
No runtime or API change — dependency-only. The local environment runs against
registry.npmmirror.com, which does not implement the audit endpoint, sonpm auditcannot be executed here; the before/after figures come from CI's ownsecurity:checkstep and from the advisory metadata fetched over the GitHub API. Because electron still trips the high threshold, this PR should be judged by whether it closes everything that can be closed without a version decision, not by whether the Node 24 legs turn green.