Skip to content

fix: patch SCA vulnerabilities (APPSEC-2107 / 2167 / 2199 / 2213 / 2252) - #68

Open
ping-huang1 wants to merge 2 commits into
mainfrom
security/appsec-sca-patches
Open

fix: patch SCA vulnerabilities (APPSEC-2107 / 2167 / 2199 / 2213 / 2252)#68
ping-huang1 wants to merge 2 commits into
mainfrom
security/appsec-sca-patches

Conversation

@ping-huang1

@ping-huang1 ping-huang1 commented Jul 26, 2026

Copy link
Copy Markdown
Collaborator

Summary

Patches five Socket.dev-flagged Critical or High SCA vulnerabilities by raising/adding pnpm.overrides floors (the repo's established pattern for security pinning) and syncing the two workspace vitest specs.

Ticket Package Was Now Advisory (severity)
APPSEC-2107 vitest 3.2.4 3.2.6 CVE-2026-47429 / GHSA-5xrq-8626-4rwp — arbitrary file read/exec via Vitest UI server (critical, 9.8)
APPSEC-2167 picomatch 4.0.3 4.0.5 CVE-2026-33671 / GHSA-c2c7-rcm5-vvqj — ReDoS via extglob quantifiers (high, 7.5)
APPSEC-2199 brace-expansion 1.1.12 / 2.0.2 / 5.0.4 1.1.16 / 2.1.2 / 5.0.8 CVE-2026-13149 / GHSA-3jxr-9vmj-r5cp — exponential-time expansion DoS (high, 7.7)
APPSEC-2252 brace-expansion 5.0.7 5.0.8 CVE-2026-14257 / GHSA-mh99-v99m-4gvg — DoS via unbounded expansion length (OOM crash)
APPSEC-2213 postcss 8.5.15 8.5.23 GHSA-r28c-9q8g-f849 — source-map path traversal / arbitrary .map disclosure (high, 7.5)

Approach

  • These packages are governed by pnpm.overrides, which replace workspace specs — so bumping a workspace package.json alone had no effect. Fix is to raise the override floors.
  • vitest is pinned to exactly 3.2.6 (not a >= floor), because a floor resolved to the 4.x major. Pinning keeps it on the 3.x line and matches the workspace specs.
  • brace-expansion uses per-major scoped overrides (@1/@2/@5) so each instance moves to its patched release without forcing a cross-major upgrade. The @5 pin lands on 5.0.8, which covers both APPSEC-2199 and APPSEC-2252 (CVE-2026-14257 was only patched in 5.0.8; there are no backports to the 1.x/2.x lines, so those instances remain at the latest available in their major — the OOM CVE only affects 5.x).
  • picomatch/postcss resolve to the latest patch ≥ the required floor.

Notes

  • Lockfile diff is large but mostly noise: ~124 of the removed lines are cpu/os format normalization from regenerating with the repo's declared pnpm@10.20.0; the rest are the version bumps.
  • Not included — APPSEC-2212 (react-router): risk-accepted separately. Its only fix is a major upgrade to react-router@8.3.0 (forcing React >=19.2.7 + Node 20→22), and the advisory only affects unstable RSC APIs / Framework/Data modes — this app uses Declarative Mode (<BrowserRouter>) exclusively, so it's not exploitable.

Testing

  • pnpm -r test on Node 20 — all pass (scripts: 41, code-components: 28).

Raise/add pnpm.overrides floors to pull patched versions of four
Socket.dev-flagged dependencies, and pin the two workspace vitest
specs to match.

- APPSEC-2107: vitest 3.2.4 -> 3.2.6 (CVE-2026-47429, GHSA-5xrq-8626-4rwp,
  critical arbitrary file read/exec via Vitest UI server)
- APPSEC-2167: picomatch 4.0.3 -> 4.0.5 (CVE-2026-33671, GHSA-c2c7-rcm5-vvqj,
  ReDoS via extglob quantifiers)
- APPSEC-2199: brace-expansion -> 1.1.16 / 2.1.2 / 5.0.7 (CVE-2026-13149,
  GHSA-3jxr-9vmj-r5cp, exponential-time expansion DoS)
- APPSEC-2213: postcss 8.5.15 -> 8.5.23 (GHSA-r28c-9q8g-f849, source-map
  path traversal / arbitrary .map disclosure)

vitest is pinned to exactly 3.2.6 to stay on the 3.x line (a floor would
have pulled the 4.x major). Lockfile regenerated with pnpm 10.20.0; the
large diff is mostly cpu/os format normalization. All workspace tests
pass (scripts 41, code-components 28).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@socket-security

socket-security Bot commented Jul 26, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addednpm/​vitest@​3.2.6981007899100

View full report

@socket-security

socket-security Bot commented Jul 26, 2026

Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
High CVE: npm brace-expansion: DoS via unbounded expansion length causing an out-of-memory process crash

CVE: GHSA-mh99-v99m-4gvg brace-expansion: DoS via unbounded expansion length causing an out-of-memory process crash (HIGH)

Affected versions: < 5.0.8

Patched version: 5.0.8

From: pnpm-lock.yamlnpm/@webflow/webflow-cli@2.2.0npm/eslint@9.39.1npm/brace-expansion@1.1.16

ℹ Read more on: This package | This alert | What is a CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Remove or replace dependencies that include known high severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/brace-expansion@1.1.16. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
High CVE: npm brace-expansion: DoS via unbounded expansion length causing an out-of-memory process crash

CVE: GHSA-mh99-v99m-4gvg brace-expansion: DoS via unbounded expansion length causing an out-of-memory process crash (HIGH)

Affected versions: < 5.0.8

Patched version: 5.0.8

From: pnpm-lock.yamlnpm/@webflow/webflow-cli@2.2.0npm/brace-expansion@2.1.2

ℹ Read more on: This package | This alert | What is a CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Remove or replace dependencies that include known high severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/brace-expansion@2.1.2. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Medium
Dynamic code execution: npm @vitest/snapshot

Eval Type: Function

Location: Package overview

From: pnpm-lock.yamlnpm/vitest@3.2.6npm/@vitest/snapshot@3.2.6

ℹ Read more on: This package | This alert | What is dynamic code execution?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Avoid packages that use dynamic code execution like eval(), since this could potentially execute any code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@vitest/snapshot@3.2.6. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

Addresses CVE-2026-14257 (GHSA-mh99-v99m-4gvg): DoS via unbounded
expansion length causing OOM. Affected <= 5.0.7; first patched in 5.0.8.
Supersedes the 5.0.7 pin added for APPSEC-2199.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@ping-huang1 ping-huang1 changed the title fix: patch SCA vulnerabilities (APPSEC-2107 / 2167 / 2199 / 2213) fix: patch SCA vulnerabilities (APPSEC-2107 / 2167 / 2199 / 2213 / 2252) Jul 28, 2026
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