chore(deps): security bumps — postcss, shell-quote (AXE-3900/AXE-3901) - #277
Merged
Conversation
Pins two vulnerable transitive dev dependencies via package.json `overrides`, so the fixes survive lockfile regeneration rather than living only in the lock. shell-quote 1.8.4 -> 1.10.0 GHSA-395f-4hp3-45gv (AXE-3901) postcss -> 8.5.25 floor GHSA-6g55-p6wh-862q (AXE-3900) Impact scope: a11y-critical (dependency tree only — no rule or module behaviour changes). No runtime exposure: axe-core declares no `dependencies`, so neither package ships in the published bundle. shell-quote <- npm-run-all (build scripts) postcss <- @csstools/css-syntax-patches-for-csstree <- cssstyle <- jsdom Adding the postcss override let npm re-resolve that subtree, which refreshed @csstools/css-syntax-patches-for-csstree 1.0.14 -> 1.1.7 (in-range for cssstyle's ^1.0.14). That version no longer depends on postcss, so postcss and nanoid drop out of the tree altogether. The override is retained as a floor guard in case any future dependency reintroduces postcss. Also refreshed in-range and dev-only: css-tree 3.1.0 -> 3.2.1, mdn-data 2.12.2 -> 2.27.1. lockfileVersion 2 preserved (--lockfile-version=2). Verified: `npm ci --dry-run` clean; jsdom computed-style smoke test passes on the bumped css-tree. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Aaryan430
previously approved these changes
Jul 31, 2026
…AXE-3943, AXE-3944) - ip-address: override to >=10.4.0 (GHSA-mwp4-54f8-5fhr, SSRF via octal decoding) - socket.io-parser: override to >=4.2.7 (GHSA-2m8v-j782-fhvr, memory exhaustion)
sunny-se
approved these changes
Aug 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pins two vulnerable transitive dev dependencies via
package.jsonoverrides, so the fixes survive lockfile regeneration instead of living only in the lock.parse()sourceMappingURLNo runtime exposure
axe-core declares no
dependencies— everything isdevDependencies, so neither package ships in the published bundle:shell-quote←npm-run-all(build scripts)postcss←@csstools/css-syntax-patches-for-csstree←cssstyle←jsdom(test-time DOM)Both were marked
dev: truein the lock before this change.Why postcss disappears rather than moving to 8.5.25
Adding the
postcssoverride made npm re-resolve that subtree, which refreshed@csstools/css-syntax-patches-for-csstree1.0.14 → 1.1.7 — in-range forcssstyle's^1.0.14. That version no longer depends on postcss at all, sopostcssand its own depnanoiddrop out of the tree.The
postcss: 8.5.25override is deliberately retained as a floor guard: the jsdom/cssstyle chain churns often, and if any future dependency reintroduces postcss it will be forced onto a patched version rather than silently reopening AXE-3900.Full set of lockfile version changes
Audited exhaustively — nothing moved outside declared ranges, and everything here is dev-only:
lockfileVersion: 2preserved via--lockfile-version=2(npm 10 would otherwise rewrite it to v3).Verification
npm ci --dry-runclean — lock andpackage.jsonin sync.css-tree3.2.1 (color,display: flex,margin-topall resolve correctly), confirming the CSS stack that feeds the unit-test DOM still works.require.resolve('postcss')now fails in the installed tree, i.e. it is genuinely gone rather than hoisted elsewhere.Supersedes
These Dependabot PRs are lock-only and are made redundant by this one — they can be closed once this merges:
Related
The sibling remediation for the other six advisories (AXE-3885, AXE-3895–AXE-3899) is in
a11y-engine— sharp, axios, js-yaml, brace-expansion, fast-uri.🤖 Generated with Claude Code