fix: bump postcss to 8.5.12 (CVE-2026-45623) - #247
Closed
cwood-11 wants to merge 1 commit into
Closed
Conversation
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.
Security fix: CVE-2026-45623
Bumps
postcssto8.5.12to resolve CVE-2026-45623. This closes 44 Wiz-tracked issue(s).Rationale for this fix: Step 2 (scoped to REPOSITORY_BRANCH/CODE assets, status=OPEN, has_fix=true, ordered by RESOURCE_COUNT desc) ranked GHSA-r28c-9q8g-f849 first (46 findings) but that is excluded per the in-progress list. Among remaining candidates, CVE-2026-45623 (postcss arbitrary file read via sourceMappingURL, HIGH 7.5) ranked #1 with 44 findings across 16 distinct GitHub repos/branches, ahead of CVE-2026-41305 (41 findings, also postcss but a different XSS bug) and a cluster of Next.js CVE-2026-646xx issues (30 findings/13 assets each). Effort assessment: CVE-2026-45623 is LOW effort — every one of the 44 findings names the exact same single package (postcss) and the exact same single fixed version (8.5.12) both in the catalog record and in every individual finding, with no conflicting or ambiguous fix targets. By contrast CVE-2026-41305's findings showed inconsistent/ambiguous fixedVersion values (8.5.10 for some, a 'next@16.3.0-canary.6' value for transitive findings, and null for at least one finding), making it a messier, higher-effort fix to reconcile; the Next.js CVE-2026-646xx cluster would each only need a minor Next.js bump too but affects fewer resources (30 vs 44) and splitting effort across three separate CVEs is less efficient than one consolidated postcss bump. Because CVE-2026-45623 is simultaneously the highest-impact non-excluded candidate (44 findings/16 repos) AND clearly LOW-effort (single package, single semver-patch fix version, satisfiable via a direct/override dependency bump with no breaking API changes noted in the advisory), there is no impact-vs-effort tradeoff to make, so it is selected outright per the guidance to not sacrifice impact when effort is already low. Ecosystem is npm (JavaScript/Node package manager), consistent with Wiz's own classification (npm GitHub Advisory feed, package-lock.json/pnpm-lock.yaml/package.json manifests observed in findings).
Patch stage results
npm install && npm ls postcss (to confirm resolved version) && npm run build (next build) — run in each of the 11 affected example dirs (templates/nextjs, text-to-speech/nextjs/quickstart/example, agents/nextjs/quickstart/example, agents/nextjs/guardrails/example, sound-effects/nextjs/quickstart/example, voice-changer/nextjs/quickstart/example, speech-engine/nextjs/quickstart/example, dubbing/nextjs/quickstart/example, music/nextjs/quickstart/example, voice-isolator/nextjs/quickstart/example, speech-to-text/nextjs/realtime/example)npm pkg set overrides.postcss=8.5.12on each of the 11 affected package.json files to force npm's dependency resolver to pin the transitive postcss to the fixed version (npm's standard mechanism for pinning a transitive dependency). For each example I then rannpm installand verified vianpm ls postcssthat the resolved/overridden version is 8.5.12 everywhere (previously 8.4.31), and rannpm run build(next build) in every one of the 11 examples — all built successfully with Turbopack, confirming no regression. There is no repo-wide CI test suite for these examples (the only CI workflow, .github/workflows/lint.yml, just runs ruff and prettier checks against the repo root, not per-example builds/tests), sonext buildper example was the most meaningful functional verification available, and I applied it to every affected example rather than just one. Generated node_modules/, package-lock.json, and .next build artifacts were removed after verification since they are gitignored in this repo and should not be committed. The final diff touches only the 11 package.json files, each adding anoverrides.postcss = "8.5.12"entry (npm's package.json writer also reflowed a few pre-existing dependency keys alphabetically in some files as a harmless side effect of usingnpm pkg set, with no semantic change). 8.5.12 is a patch-level bump within the postcss 8.x line, so this is not a major/breaking version bump.Independent verification results
npm pkg set) and semantically neutral.npm ls postcssshows postcss@8.5.12 'overridden' and node_modules/postcss is version 8.5.12 (>= fixed 8.5.12).npm run build(next build 16.1.6, Turbopack) succeeded.npm run buildsucceeded, confirming npm still honors the top-level overrides alongside pnpm.overrides.npx prettier . --check. Ran prettier@3.8.1 --check on all changed files -> 'All matched files use Prettier code style', so the JSON edits do not break the prettier CI gate.overrides; a pnpm-based install of those would not pin postcss. No committed per-example lockfiles exist and CI uses npm, so the fix is effective for the actual toolchain.🤖 Opened automatically by the CVE patch orchestrator. This PR is a draft pending human review — it will not be marked ready for review automatically.