Skip to content

Bump werkzeug to 3.1.9 and brace-expansion to 5.0.12 (security) - #219

Merged
amorfinv merged 2 commits into
mainfrom
claude/vibrant-carson-z13wea
Oct 17, 2026
Merged

amorfinv merged 2 commits into
mainfrom
claude/vibrant-carson-z13wea

Conversation

@amvlab

@amvlab amvlab commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

Summary

Resolves two Dependabot alerts. Both packages are transitive dependencies, so only lockfile pins change.

Werkzeug 3.1.8 -> 3.1.9 (uv.lock, alert #22)

Werkzeug's safe_join() allowed Windows special device names with an empty ADS marker (e.g. NUL:), so on Windows/NTFS a request through send_from_directory could open the device and hang on read.

  • Pulled in via Flask. WebATM does not call safe_join or send_from_directory directly, but Flask's static file route does, so /static/... was reachable on Windows hosts. The Linux Docker images were not affected in practice.

brace-expansion 5.0.7 -> 5.0.12 (frontend/package-lock.json, alert #26, GHSA-q2hr-2g5m-vwhr)

Expanding {a},b}-shaped input was quadratic in the number of literal } characters.

  • Dev-only, pulled in via minimatch (eslint, typedoc, typescript-eslint). Never shipped in the bundle; only build and lint tooling was exposed.
  • Only the brace-expansion entry in the lockfile changes. Running npm update with npm 10 also stripped unrelated libc metadata written by a newer npm, so that churn was left out.

Testing

  • uv sync + uv run pytest: 543 passed
  • npm ci (lockfile integrity verified), npm run type-check, npm run lint: clean
  • npm test: 872 passed
  • Advisory repro at n=32,000: 33 ms with 5.0.12 (advisory reports ~1.7 s on affected versions)

🤖 Generated with Claude Code

https://claude.ai/code/session_01PM4eUWrrFv9zxV7cfRW28J

Resolves Dependabot alert #22 (safe_join allowed Windows special device
names with an empty ADS marker, e.g. NUL:). Werkzeug is a transitive
dependency via Flask; only the lockfile pin changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PM4eUWrrFv9zxV7cfRW28J
Resolves Dependabot alert #26 (GHSA-q2hr-2g5m-vwhr). brace-expansion is
a dev-only transitive dependency via minimatch (eslint, typedoc,
typescript-eslint); only its lockfile entry changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PM4eUWrrFv9zxV7cfRW28J
@amvlab amvlab changed the title Bump werkzeug to 3.1.9 (safe_join Windows device names) Bump werkzeug to 3.1.9 and brace-expansion to 5.0.12 (security) Oct 17, 2026
@amorfinv
amorfinv merged commit 38fd4bf into main Oct 17, 2026
2 checks passed
@amorfinv
amorfinv deleted the claude/vibrant-carson-z13wea branch October 17, 2026 12:58
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.

3 participants