Skip to content

fix: bump dependencies and resolve security vulnerabilities - #445

Merged
dianaKhortiuk-frontegg merged 3 commits into
masterfrom
deps-security-bump
Jul 14, 2026
Merged

fix: bump dependencies and resolve security vulnerabilities#445
dianaKhortiuk-frontegg merged 3 commits into
masterfrom
deps-security-bump

Conversation

@dianaKhortiuk-frontegg

Copy link
Copy Markdown
Contributor

Summary

Closes the security advisories reachable through the published @frontegg/nextjs package, plus the critical Next.js advisory in the example apps.

This is a lerna/yarn-workspaces monorepo; the vast majority of yarn audit findings are in dev tooling (lerna, jest, webpack, babel, eslint, danger, tslint) which is not shipped to consumers and is not gated by CI. This PR deliberately scopes to what reaches SDK consumers and the one critical example-app runtime CVE, rather than forcing risky multi-major overrides across the build toolchain.

Changes

SDK production chain — enforced via the root resolutions field:

  • follow-redirects^1.16.0 — Proxy-Authorization / auth header leakage (via http-proxy)
  • cookie^0.7.0 — out-of-bounds characters in cookie parsing (via iron-session)
  • @babel/runtime^7.26.10 — inefficient RegExp complexity (via @frontegg/js)

Resolved versions after install: follow-redirects 1.16.0, cookie 0.7.2, @babel/runtime 7.29.7.

Example apps:

  • next / eslint-config-next 14.2.014.2.35 — fixes the critical Next.js middleware authorization bypass (CVE-2025-29927) and other 14.2.x advisories (cache poisoning, DoS, etc.)

Docs:

  • Added a Security section to the README (patched-dependency posture + responsible disclosure to security@frontegg.com).

Verification

  • yarn build (@frontegg/nextjs): passed
  • yarn test (@frontegg/nextjs): passed (21 tests)
  • Consumer-facing chain: 3 of 4 advisories fixed.

Known residual

A moderate uuid advisory remains inside the vendored @frontegg/redux-store bundle (via @frontegg/react-hooks). Its fix requires uuid v11 (a major bump); the vulnerable path (v3/v5/v6 with a buf argument) is not exercised by these bundles, so a global override is intentionally not applied to avoid build breakage. Best addressed by a future bump of the @frontegg/js / @frontegg/react-hooks line.

🤖 Generated with Claude Code

Close the security advisories reachable through the published
@frontegg/nextjs package and the example apps.

SDK production chain (enforced via root "resolutions"):
- follow-redirects -> ^1.16.0 (proxy/auth header leak; via http-proxy)
- cookie -> ^0.7.0 (out-of-bounds cookie parsing; via iron-session)
- @babel/runtime -> ^7.26.10 (inefficient RegExp; via @frontegg/js)

Example apps:
- next / eslint-config-next 14.2.0 -> 14.2.35 (fixes the critical
  middleware authorization bypass CVE-2025-29927 and other 14.2.x CVEs)

Also add a Security section to the README documenting the patched
dependency posture and responsible disclosure to security@frontegg.com.

Verified: `yarn build` and `yarn test` (@frontegg/nextjs) pass.

Known residual: a moderate advisory in `uuid` remains inside the
vendored @frontegg/redux-store bundle; its fix requires uuid v11 (a
major bump) and the affected code path (v3/v5/v6 with a buffer) is not
exercised, so a global override is not applied here.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
dianaKhortiuk-frontegg and others added 2 commits July 14, 2026 16:24
`scripts/build.js` throws when the babel compile step writes anything to
stderr (except Node/babel deprecation warnings). The pinned caniuse-lite
had aged ~9 months, so Browserslist printed a "browsers data is 9 months
old" staleness warning to stderr, failing `yarn build:stable` in CI.

This is a pre-existing, time-based issue (caniuse-lite was identical on
master), surfaced by this PR's fresh CI run. Ran `update-browserslist-db`
to bump caniuse-lite to 1.0.30001805; the babel step now emits no stderr
and the build passes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
scripts/build.js treats any babel stderr output (other than Node/babel
deprecation warnings) as a build failure. When caniuse-lite ages past
~6 months, Browserslist prints a "browsers data is N months old" notice
to stderr, which fails `yarn build:stable` in CI for reasons unrelated to
the actual change.

Add `Browserslist` to the ignore pattern so this informational notice is
not treated as a failure. The companion caniuse-lite refresh fixes the
current instance; this prevents the build from breaking again as the data
ages.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@dianaKhortiuk-frontegg
dianaKhortiuk-frontegg merged commit 37d538b into master Jul 14, 2026
1 check passed
dianaKhortiuk-frontegg added a commit that referenced this pull request Jul 15, 2026
Resolve conflicts from the merged deps/security PR (#445):
- scripts/build.js: both branches added the Browserslist stderr-ignore
  fix; keep the combined `Browserslist|caniuse-lite` pattern.
- yarn.lock: regenerated via `yarn install` to reconcile master's
  dependency/security updates (resolutions, refreshed caniuse-lite) with
  this branch's test tooling (vitest, jsdom).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.

2 participants