security: fix remaining Dependabot alerts (94 open) - #7
Merged
Conversation
…m, 6 low) Python (MLService/*, tests/): - Pillow 12.2.0 -> 12.3.0 (multiple decompression-bomb/OOB-write CVEs) - torch 2.7.1 -> 2.9.1, torchvision 0.22.1 -> 0.24.1 (matching pair; memory corruption + resource-shutdown CVEs) - transformers 4.50.0 -> 5.5.0 in MLService/requirements.txt (RCE in Trainer/LightGlue model loading, multiple ReDoS) - idna 3.10 -> 3.15 (IDNA encode bypass of prior CVE fix) - filelock 3.16.1 -> 3.20.3 (TOCTOU symlink race) - pytest 8.4.2 -> 9.0.3 (vulnerable tmpdir handling) - starlette 0.49.1 -> 1.3.1 (several CVEs: SSRF/NTLM via UNC paths, DoS, arbitrary method dispatch); fastapi bumped 0.121.0 -> 0.135.0 to match (needed a version with an open-ended starlette>= requirement, since no fastapi release capping below 0.51 supports starlette's 1.x line) web/: - next 15.5.19 -> 15.5.21 (SSRF, DoS, cache confusion, disclosure) - sharp 0.34.5 -> 0.35.3 via override (libvips CVEs) - postcss 8.5.10 -> 8.5.25, with an overrides entry forcing next's bundled nested postcss to the same version - next vendors its own copy that a plain devDependency bump doesn't reach - npm audit: 0 vulnerabilities (was 2, both after the above bump) Also fixes a real regression this surfaced: transformers>=5's SiglipModel.get_text_features()/get_image_features() return the raw BaseModelOutputWithPooling instead of the pooled tensor - every /embed/text and /embed/image call was 500ing. Extract .pooler_output explicitly. Verified against a live container: both endpoints return real 768-d embeddings post-fix. Verified: pip resolves cleanly for all 4 requirements.txt files, all affected Docker images (embedder, extractor, chunker, normalizer, mlservice) build and start without crash-looping, web/ builds clean, embedder's actual embed endpoints tested end-to-end against a running container. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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
Closes the 94 open Dependabot alerts on
main(50 high, 38 moderate, 6 low):MLService/inference/embedder/requirements.txtMLService/requirements.txtMLService/extractor/requirements.txttests/requirements.txtweb/package.jsonfastapi needed a real bump (not just the starlette pin) since every fastapi release capping below 0.51 still requires
starlette<0.51, which excludes starlette's whole 1.x line — 0.135.0 is the first release with an open-endedstarlette>=0.46.0.Bonus fix, found while verifying this didn't ship broken:
transformers'sSiglipModel.get_text_features()/get_image_features()now return the rawBaseModelOutputWithPoolinginstead of the pooled tensor (atransformers5.x behavior change, unrelated to this PR's version bumps). Every/embed/textand/embed/imagecall inembedder/app.pywas silently 500ing. Fixed by extracting.pooler_output.Test plan
pip install --dry-runresolves cleanly for all 4 touchedrequirements.txtfilesdocker compose build embedder extractor chunker normalizer mlservice— all succeeddocker compose up— all 4 services stay up, no crash-loop/embed/textand/embed/imageboth return real 768-d vectors (were 500ing before the app.py fix)web/:npm run buildsucceeds,npm audit→ 0 vulnerabilities🤖 Generated with Claude Code