Skip to content

chore: upgrade postcss-selector-parser to ^6.1.4 to address CVE-2026-9358 - #1625

Merged
jsourcebot merged 2 commits into
mainfrom
cursor/cve/postcss-selector-parser
Sep 4, 2026
Merged

chore: upgrade postcss-selector-parser to ^6.1.4 to address CVE-2026-9358#1625
jsourcebot merged 2 commits into
mainfrom
cursor/cve/postcss-selector-parser

Conversation

@claude

@claude claude Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Fixes SOU-2117

Summary

Moves every postcss-selector-parser instance in the dependency graph to 6.1.4, at or above the 6.1.3 patched floor.

Two distinct requesters were pulling vulnerable versions:

  • tailwindcss@3.4.17 (^6.1.2) and postcss-nested@6.2.0 (^6.1.1) resolved to 6.1.2. Those ranges already admitted the patched release, so a yarn up -R postcss-selector-parser lockfile refresh was sufficient.
  • @tailwindcss/typography requests postcss-selector-parser at the exact version 6.0.10. Every published release of that plugin up to and including the current 0.5.20 still pins 6.0.10, so no top-level upgrade can relax it. This required the narrowest available fallback: a qualified resolutions entry keyed to the existing source range.
"postcss-selector-parser@npm:6.0.10": "^6.1.3"

Advisory addressed

  • CVE-2026-9358postcss-selector-parser allows denial of service through uncontrolled AST recursion in toString (src/selectors/container.js). Patched in 6.1.3 / 7.1.1.

Verification

  • yarn why postcss-selector-parser reports 6.1.4 for all five requester paths — no vulnerable version remains in the dependency graph.
  • yarn install --immutable succeeds.
  • yarn test passes: 1439 web tests across 139 files, plus the queryLanguage, shared, and backend suites.
  • yarn build succeeds for all workspaces, including the Next.js production build. This exercises the affected code path directly, since Tailwind, postcss-nested, and the typography plugin all run postcss-selector-parser during CSS compilation.

🤖 Generated with Claude Code


Note

Low Risk
Dependency-only security patch with no application code changes; risk is limited to CSS/PostCSS build-time behavior from the upgraded parser.

Overview
Security dependency bump for CVE-2026-9358 (DoS via uncontrolled AST recursion in postcss-selector-parser’s toString).

The lockfile is refreshed so transitive consumers (tailwindcss, postcss-nested, etc.) resolve postcss-selector-parser@6.1.4 instead of 6.1.2 / 6.0.10. Because @tailwindcss/typography pins the exact 6.0.10 range, the root package.json adds a Yarn resolutions override (postcss-selector-parser@npm:6.0.10^6.1.3) so that path is forced onto a patched release too.

CHANGELOG records the upgrade under [Unreleased] → Fixed.

Reviewed by Cursor Bugbot for commit cb48939. Bugbot is set up for automated code reviews on this repo. Configure here.


Summary by cubic

Upgrades every postcss-selector-parser instance to 6.1.4, closing CVE-2026-9358 (denial of service via AST recursion), and records the change in the changelog.

Dependencies

  • tailwindcss and postcss-nested ranges already admit the patched release, so a lockfile refresh resolves them to 6.1.4.
  • @tailwindcss/typography pins postcss-selector-parser at exactly 6.0.10, so a qualified resolutions entry forces that range to ^6.1.3.

Written for commit cb48939. Summary will update on new commits.

Review in cubic

@github-actions

This comment has been minimized.

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

License Audit

⚠️ Status: PASS

Metric Count
Total packages 2173
Resolved (non-standard) 26
Unresolved 0
Strong copyleft 0
Weak copyleft 28

Weak Copyleft Packages (informational)

Package Version License
@img/sharp-libvips-darwin-arm64 1.3.2 LGPL-3.0-or-later
@img/sharp-libvips-darwin-x64 1.3.2 LGPL-3.0-or-later
@img/sharp-libvips-linux-arm 1.3.2 LGPL-3.0-or-later
@img/sharp-libvips-linux-arm64 1.3.2 LGPL-3.0-or-later
@img/sharp-libvips-linux-ppc64 1.3.2 LGPL-3.0-or-later
@img/sharp-libvips-linux-riscv64 1.3.2 LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x 1.3.2 LGPL-3.0-or-later
@img/sharp-libvips-linux-x64 1.3.2 LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm64 1.3.2 LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x64 1.3.2 LGPL-3.0-or-later
@img/sharp-wasm32 0.35.3 Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-arm64 0.35.3 Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-ia32 0.35.3 Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-x64 0.35.3 Apache-2.0 AND LGPL-3.0-or-later
axe-core 4.10.3 MPL-2.0
dompurify 3.4.13 (MPL-2.0 OR Apache-2.0)
lightningcss 1.32.0 MPL-2.0
lightningcss-android-arm64 1.32.0 MPL-2.0
lightningcss-darwin-arm64 1.32.0 MPL-2.0
lightningcss-darwin-x64 1.32.0 MPL-2.0
lightningcss-freebsd-x64 1.32.0 MPL-2.0
lightningcss-linux-arm-gnueabihf 1.32.0 MPL-2.0
lightningcss-linux-arm64-gnu 1.32.0 MPL-2.0
lightningcss-linux-arm64-musl 1.32.0 MPL-2.0
lightningcss-linux-x64-gnu 1.32.0 MPL-2.0
lightningcss-linux-x64-musl 1.32.0 MPL-2.0
lightningcss-win32-arm64-msvc 1.32.0 MPL-2.0
lightningcss-win32-x64-msvc 1.32.0 MPL-2.0
Resolved Packages (26)
Package Version Original Resolved Source
@sentry/cli 2.58.5 FSL-1.1-MIT FSL-1.1-MIT (Functional Source License 1.1, MIT Future License) LICENSE file in the published package (verified locally in node_modules) (getsentry/sentry-cli); non-SPDX but self-describing source-available license
@sentry/cli 2.58.6 FSL-1.1-MIT FSL-1.1-MIT (Functional Source License 1.1, MIT Future License) LICENSE file in the published package (verified locally in node_modules) (getsentry/sentry-cli); non-SPDX but self-describing source-available license
@sentry/cli-darwin 2.58.5 FSL-1.1-MIT FSL-1.1-MIT (Functional Source License 1.1, MIT Future License) LICENSE file in the published package (verified locally in node_modules) (getsentry/sentry-cli); non-SPDX but self-describing source-available license
@sentry/cli-darwin 2.58.6 FSL-1.1-MIT FSL-1.1-MIT (Functional Source License 1.1, MIT Future License) LICENSE file in the published package (verified locally in node_modules) (getsentry/sentry-cli); non-SPDX but self-describing source-available license
@sentry/cli-linux-arm 2.58.5 FSL-1.1-MIT FSL-1.1-MIT (Functional Source License 1.1, MIT Future License) LICENSE file in the published package (verified locally in node_modules) (getsentry/sentry-cli); non-SPDX but self-describing source-available license
@sentry/cli-linux-arm 2.58.6 FSL-1.1-MIT FSL-1.1-MIT (Functional Source License 1.1, MIT Future License) LICENSE file in the published package (verified locally in node_modules) (getsentry/sentry-cli); non-SPDX but self-describing source-available license
@sentry/cli-linux-arm64 2.58.5 FSL-1.1-MIT FSL-1.1-MIT (Functional Source License 1.1, MIT Future License) LICENSE file in the published package (verified locally in node_modules) (getsentry/sentry-cli); non-SPDX but self-describing source-available license
@sentry/cli-linux-arm64 2.58.6 FSL-1.1-MIT FSL-1.1-MIT (Functional Source License 1.1, MIT Future License) LICENSE file in the published package (verified locally in node_modules) (getsentry/sentry-cli); non-SPDX but self-describing source-available license
@sentry/cli-linux-i686 2.58.5 FSL-1.1-MIT FSL-1.1-MIT (Functional Source License 1.1, MIT Future License) LICENSE file in the published package (verified locally in node_modules) (getsentry/sentry-cli); non-SPDX but self-describing source-available license
@sentry/cli-linux-i686 2.58.6 FSL-1.1-MIT FSL-1.1-MIT (Functional Source License 1.1, MIT Future License) LICENSE file in the published package (verified locally in node_modules) (getsentry/sentry-cli); non-SPDX but self-describing source-available license
@sentry/cli-linux-x64 2.58.5 FSL-1.1-MIT FSL-1.1-MIT (Functional Source License 1.1, MIT Future License) LICENSE file in the published package (verified locally in node_modules) (getsentry/sentry-cli); non-SPDX but self-describing source-available license
@sentry/cli-linux-x64 2.58.6 FSL-1.1-MIT FSL-1.1-MIT (Functional Source License 1.1, MIT Future License) LICENSE file in the published package (verified locally in node_modules) (getsentry/sentry-cli); non-SPDX but self-describing source-available license
@sentry/cli-win32-arm64 2.58.5 FSL-1.1-MIT FSL-1.1-MIT (Functional Source License 1.1, MIT Future License) LICENSE file in the published package (verified locally in node_modules) (getsentry/sentry-cli); non-SPDX but self-describing source-available license
@sentry/cli-win32-arm64 2.58.6 FSL-1.1-MIT FSL-1.1-MIT (Functional Source License 1.1, MIT Future License) LICENSE file in the published package (verified locally in node_modules) (getsentry/sentry-cli); non-SPDX but self-describing source-available license
@sentry/cli-win32-i686 2.58.5 FSL-1.1-MIT FSL-1.1-MIT (Functional Source License 1.1, MIT Future License) LICENSE file in the published package (verified locally in node_modules) (getsentry/sentry-cli); non-SPDX but self-describing source-available license
@sentry/cli-win32-i686 2.58.6 FSL-1.1-MIT FSL-1.1-MIT (Functional Source License 1.1, MIT Future License) LICENSE file in the published package (verified locally in node_modules) (getsentry/sentry-cli); non-SPDX but self-describing source-available license
@sentry/cli-win32-x64 2.58.5 FSL-1.1-MIT FSL-1.1-MIT (Functional Source License 1.1, MIT Future License) LICENSE file in the published package (verified locally in node_modules) (getsentry/sentry-cli); non-SPDX but self-describing source-available license
@sentry/cli-win32-x64 2.58.6 FSL-1.1-MIT FSL-1.1-MIT (Functional Source License 1.1, MIT Future License) LICENSE file in the published package (verified locally in node_modules) (getsentry/sentry-cli); non-SPDX but self-describing source-available license
codemirror-lang-elixir 4.0.0 UNKNOWN Apache-2.0 GitHub repo license (livebook-dev/codemirror-lang-elixir) + LICENSE file in the published package (verified locally in node_modules)
khroma 2.1.0 UNKNOWN MIT GitHub repo license (fabiospampinato/khroma) + LICENSE file in the published package (verified locally in node_modules)
lezer-elixir 1.1.2 UNKNOWN Apache-2.0 GitHub repo license (livebook-dev/lezer-elixir) + LICENSE file in the published package (verified locally in node_modules)
map-stream 0.1.0 UNKNOWN MIT GitHub repo license (dominictarr/map-stream) + LICENSE file in the published package (verified locally in node_modules)
memorystream 0.3.1 UNKNOWN MIT extracted from object: npm registry legacy "licenses":[{"type":"MIT",...}] + LICENSE file in the published package (verified locally in node_modules)
pause-stream 0.0.11 ["MIT", "Apache2"] MIT OR Apache-2.0 extracted from object: license array ["MIT","Apache2"] + LICENSE file in the published package (verified locally in node_modules) ("Dual Licensed MIT and Apache 2")
posthog-js 1.369.0 SEE LICENSE IN LICENSE Apache-2.0 LICENSE file in the published package (verified locally in node_modules) (full Apache-2.0 text)
valid-url 1.0.9 UNKNOWN MIT LICENSE file in the published package (verified locally in node_modules) (verbatim MIT text)

claude Bot and others added 2 commits September 3, 2026 21:09
…9358

Refreshes the ^6.1.1/^6.1.2 lockfile entries and adds a qualified
resolution for the exact 6.0.10 pin that @tailwindcss/typography
requests, which no published version of that plugin has relaxed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jsourcebot
jsourcebot force-pushed the cursor/cve/postcss-selector-parser branch from 46e0772 to cb48939 Compare September 4, 2026 04:14
@jsourcebot
jsourcebot merged commit 4b70de9 into main Sep 4, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant