chore(frontend): [release-2.8] snyk sweep — critical/high + CVE-2026-4800 lodash#2413
Merged
malinskibeniamin merged 1 commit intorelease-2.8from Apr 22, 2026
Merged
Conversation
Minimal sweep on release-2.8. Scope: critical + high severity Snyk findings, plus SNYK-JS-LODASH-15869625 (CVE-2026-4800, lodash code injection) per user request. All five in-scope highs (2x lodash, 3x undici) dismissed via frontend/.snyk after reachability analysis. No dependency bumps needed. Methodology: reachability check first, then direct-dep bump, overrides only as last resort. See PR body for per-finding disposition. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced Apr 22, 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.
Summary
Minimal Snyk sweep on
release-2.8. Scope: critical + high severity, plusSNYK-JS-LODASH-15869625(CVE-2026-4800, lodash code injection) per explicit request.Builds on the prior sweep merged in #2276.
Methodology: reachability check first → direct-dep bump → overrides only as last resort.
All five in-scope high findings were unreachable in the shipped browser bundle. Each is dismissed in
frontend/.snykwith a per-path reachability justification (expires 2027-04-22). No dependency bumps, no overrides, no source churn.After applying
.snyk,snyk test --severity-threshold=highis clean.Disposition per finding
@redpanda-data/ui > @hookform/devtools > lodash.snykdismiss_.templatewithoptions.imports.@hookform/devtoolsonly importslodash/isUndefined,lodash/isObject,lodash/get(verified in node_modules)._.templateis never loaded. Also,@hookform/devtoolsis gated behind adeveloperViewflag inside@redpanda-data/uiand isn't referenced infrontend/src.@redpanda-data/ui > remark-emoji > node-emoji > lodash.snykdismiss_.template. Legacynode-emoji@1.11.0(nested under@redpanda-data/ui's bundledremark-emoji@3.1.2) only importslodash/toArray._.templateis never loaded. Frontend source uses top-levelremark-emoji@5.0.1which does not depend on lodash at all.@tanstack/react-form > @remix-run/node > undici.snykdismiss@tanstack/react-form/dist/esm/start/utils.js(Start SSR subpath). The frontend is a browser-only MF v2 remote built with rsbuild/rspack and only imports from@tanstack/react-form(browser entry);react-form/startis never imported.@tanstack/react-form > @remix-run/node > undici.snykdismisspermessage-deflatedecompress).@tanstack/react-form > @remix-run/node > undici.snykdismissserver_max_window_bitspermessage-deflate handling).SNYK-JS-LODASH-15869625 (CVE-2026-4800) — explicitly requested
Disposition: dismissed via
frontend/.snykon both dependency paths.Reachability: the vulnerable API is
_.templatewithoptions.imports. Neither caller of lodash in this tree exercises_.template:@hookform/devtools→ onlylodash/isUndefined,lodash/isObject,lodash/get.node-emoji@1.11.0(nested under@redpanda-data/ui's bundledremark-emoji@3.1.2) → onlylodash/toArray.No frontend source code imports lodash directly. No untrusted input ever reaches
_.templatethrough any reachable path.React 18 pin
No bump affects React peers (no bumps were required).
Verification
snyk test --severity-threshold=high— clean (0 issues, all 5 dismissed)bun auditrun — additional dev-only findings are out of scope for this minimal release-branch sweepbun.lockunchanged;yarn.lockunchanged —.snykis the only new filefrontend/.snyktouchedRelease-branch discipline
This is a maintained release branch. Diff is one new file (
frontend/.snyk). No lockfile churn, no speculative overrides, no unrelated cleanup. All dismissals carry a per-path reachability reason that references the actual node_modules file evidence.cc @redpanda-data/ux-console