fix(web): remediate brace-expansion DoS and refresh dependencies - #436
Merged
Conversation
…n DoS npm update refreshes react 19.2.8, daisyui 5.7.4, eslint 10.8.0, lucide-react 1.27.0 and peers within existing caret ranges. Add a brace-expansion ^5.0.8 override to remediate GHSA-mh99-v99m-4gvg (DoS) pulled in transitively via eslint-plugin-jsx-a11y, avoiding the breaking jsx-a11y downgrade npm audit fix would otherwise force.
Bump direct golang.org/x/crypto to v0.54.0 and golang.org/x/term to v0.45.0 in gh-teacher, and re-align the shared indirect set across all three modules (safeexec v1.0.1, httpretty v0.2.0, go-colorful v1.4.0, go-isatty v0.0.24, pflag v1.0.10, go-timezone-local v0.0.8, x/sys v0.47.0, x/text v0.40.0) via go get -u and go mod tidy.
Move actions/setup-node, setup-go, and setup-python from v6 to v7 across the repo workflows and the scaffolded skeleton workflows (with the matching init_skeleton_test assertions). Bump the pinned golangci-lint to v2.12.2, ruff to 0.16.0, and the hardcoded e2e Go toolchain to 1.26.5.
ruff 0.16.0 broadened its implicit default rule set (now pulls in ISC/TRY/UP/SIM/EXE/PLW/PERF), which flagged 37 findings in the shipped autograder Python and failed the lint job after the version bump. Pin --select E4,E7,E9,F so the check keeps enforcing exactly the pyflakes + pycodestyle subset its comment describes, independent of future ruff default changes.
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.
Refreshes dependencies across the monorepo (web npm, all three Go modules, GitHub Actions, and pinned CI lint tools) as a safe within-range pass, and patches a high-severity transitive DoS advisory.
web
npm updaterefreshed lockfile-only bumps within existing caret ranges (react/react-dom 19.2.8, daisyui 5.7.4, eslint 10.8.0, typescript-eslint 8.65.0, prettier 3.9.6, @vitejs/plugin-react 6.0.4, lucide-react 1.27.0, @tanstack/react-query + devtools, react-i18next, @types/node, happy-dom, globals, eslint-plugin-boundaries). Nopackage.jsonrange changes were needed.Added a
brace-expansion: ^5.0.8override to remediate GHSA-mh99-v99m-4gvg (high-severity DoS via unbounded expansion), pulled in transitively viaeslint-plugin-jsx-a11y. This avoids the breaking jsx-a11y downgradenpm audit fix --forcewould otherwise force.npm auditnow reports 0 vulnerabilities.cli (Go)
Bumped direct
golang.org/x/cryptoto v0.54.0 andgolang.org/x/termto v0.45.0 in gh-teacher, and re-aligned the shared indirect set across all three modules (safeexec v1.0.1, httpretty v0.2.0, go-colorful v1.4.0, go-isatty v0.0.24, pflag v1.0.10, go-timezone-local v0.0.8, x/sys v0.47.0, x/text v0.40.0) viago get -uandgo mod tidy. This clears the prior cross-module version skew.ci
Moved
actions/setup-node,setup-go, andsetup-pythonfrom v6 to v7 across repo workflows and the scaffolded skeleton workflows, with the matchinginit_skeleton_testassertions updated in lockstep. Bumped pinned golangci-lint to v2.12.2, ruff to 0.16.0, and the hardcoded e2e Go toolchain to 1.26.5.Not included: TypeScript 7
TypeScript 7 is GA but
typescript-eslintdoes not yet support it (latest and canary both cap attypescript <6.1.0), so a TS 7 bump breaks theeslintstep ofnpm run check. TypeScript is held at~6.0.3; revisit once typescript-eslint#10940 lands.Test plan
npm run check(tsc, eslint, prettier, arch:validate, vitest) — green, 2682 testsnpm audit— 0 vulnerabilitiesgo build,go test,golangci-lint run(0 issues),golangci-lint fmt --diff(empty)actionlinton all workflows — cleanskeleton_tests(603) andautograders_tests(350) pass