Repository navigation
fix(security): re-resolve 7 packages in yarn.lock - #17
claudesecuritypatcher[bot] wants to merge 3 commits into
Conversation
In-range lock re-resolve, no manifest change: lodash/lodash-es 4.18.1 (CVE-2026-4800), json5 1.0.2/2.2.3 (CVE-2022-46175), braces 3.0.3 (CVE-2024-4068), semver 5.7.2/6.3.1/7.8.5 (CVE-2022-25883). All in the xo lint tree only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Security review: the lock refresh removes the vulnerable versions for every row of the table, including both brace-expansion CVEs from issue 11 — no security objection to merging. The red Verified (rung: lock-file read of
CI
Not checked: a live token exchange with the jsonwebtoken 9 signing path (the PR body also says it did not do one), and the Automated non-fixing second opinion; a human decides. |
|
The red |
Its own checks are failingTest fails, so this PR cannot be merged as it stands. If the base has moved on since it was opened it may be obsolete; closing it with a one-line reason is a valid answer, and the finding returns to the automation against the current base. Automated check on each sweep; this comment is rewritten in place. The security review, if any, is a separate comment. |
Clears CVE-2026-14257 and CVE-2026-69152. In-range re-resolve of brace-expansion@^1.1.7 (via minimatch@3 in the xo lint tree), no manifest change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…(folded in from #14) Moves jsonwebtoken 8.5.1 -> 9.0.3, jws 3.2.2 -> 4.0.1, jwa 1.4.1 -> 2.0.1. In-range, no manifest change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Checked the base directly this time: on a clean worktree of |
Closes #15
Closes #11
Bundles the in-range
yarn.lockre-resolves for Wiz findings into one PR (supersedes #16 and #14). Wiz posture issues5f20cf64-222b-4dd8-a6f4-0abe6700a3c0(#15) and29ccf336-36e1-4d5e-ba34-ce958b0c3f94(#11).Re-resolved packages
Why this matters
The worst of the lint-tree packages is lodash's
_.template, which can run injected code if untrusted strings end up asoptions.importskey names. The others are a json5 prototype pollution and denial-of-service bugs in braces, semver and brace-expansion, where a crafted glob pattern can make expansion take very long. None of these ship in the action.yarn whytraces each one to thexolint toolchain (brace-expansion comes in viaeslint-plugin-import→minimatch@3), and ncc bundles only@actions/*and@octokit/*intodist/index.js. They still run on CI runners and developer machines duringyarn install/yarn run xo, and a lock refresh costs nothing, so they are fixed rather than deferred.The JWT chain is runtime code.
@octokit/auth-appsigns the App JWT throughuniversal-github-app-jwt→jsonwebtoken, and the old jsonwebtoken/jws had flaws in how they check keys and algorithms. The action only signs and never verifies an untrusted token, so the practical exposure was small, but this is the path that handles the private key. This row was #14, which is folded in here.Risk of this change
Only
yarn.lockchanges;package.jsonis untouched. Every existing range (lodash@^4.17.21,json5@^1.0.1/^2.2.1,braces@^3.0.2,semver@^5.7.1/^6.0.0/^7.3.7,brace-expansion@^1.1.7,universal-github-app-jwt@^1.0.1) already allowed the fixed versions, so the lock was just stale. brace-expansion stays on the 1.1.x line thatminimatch@3calls as a CJS export. It is not moved to 2.x/5.x, which would break eslint. universal-github-app-jwt 1.2.0's only change is moving tojsonwebtoken@^9. jsonwebtoken 9's breaking changes are on the verify side (it rejects insecure key types andnoneby default). The action signs with RS256 and an RSA key, which v9 still accepts. A blanketyarn upgradewas avoided on purpose: it pulls in new runtime advisories via@actions/http-client. No override was added, so Dependabot keeps these current.Verification
Ran the
test.ymlsteps locally with Node 22 and yarn 1.22.22:yarn install --frozen-lockfile(exit 0),yarn-deduplicate --fail --strategy fewer(exit 0),yarn run build(ncc, exit 0),yarn run xo(exit 0, so this exercises minimatch@3 with the new brace-expansion). Resolved in the lock:yarn audit --groups dependencies --level highreports no high-severity runtime advisory. 19 moderate advisories remain, for example@octokit/request*,@octokit/plugin-paginate-restanduuid. Those need major bumps of@actions/github/@octokit/auth-app/@actions/core, are not part of either Wiz finding here, and are out of scope. I did not do a live token exchange against GitHub. CI: theTestcheck is red at its Prettier step, and the only file it flags isREADME.md.prettier --check README.mdfails the same way onorigin/main, so the failure was already on the base and this PR doesn't cause it.🤖 Generated with Claude Code