Skip to content

Fix security vulnerabilities in Python and Node.js dependencies for non-deprecated components - #1189

Merged
jeffbl merged 5 commits into
mainfrom
copilot/review-dependabot-security-issues
Apr 14, 2026
Merged

Fix security vulnerabilities in Python and Node.js dependencies for non-deprecated components#1189
jeffbl merged 5 commits into
mainfrom
copilot/review-dependabot-security-issues

Conversation

Copilot AI commented Mar 31, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR addresses security vulnerabilities identified via pip-audit and npm audit across all non-deprecated components in the IMAGE-server repository. All deprecated folders (handlers/deprecated/*, preprocessors/deprecated/*) are excluded from changes.

Addresses issue #1111 — Review dependabot issues for non-deprecated containers.

Python dependency updates (33 requirements.txt files)

Package From To CVEs Fixed
Flask 2.2.5, 3.0.3, 3.1.0 3.1.3 CVE-2026-27205, CVE-2025-47278
Werkzeug 3.0.3, 3.1.0, 3.1.3 3.1.6 CVE-2024-49766, CVE-2024-49767, CVE-2025-66221, CVE-2026-21860, CVE-2026-27199
requests 2.32.0, 2.32.3 2.33.0 CVE-2024-47081, CVE-2026-25645
Pillow 9.4.0–11.3.0 12.1.1 CVE-2026-25990 (out-of-bounds write)
Jinja2 3.1.2, 3.1.4 3.1.6 CVE-2024-56201, CVE-2024-56326, CVE-2025-27516 (arbitrary code exec)
urllib3 1.26.9 2.6.3 CVE-2024-37891 + 6 others
opencv-python 4.7.0.72 4.10.0.84 GHSA-qr4w-53vh-m672
Flask-Cors 5.0.0 6.0.0 CVE-2024-6839, CVE-2024-6844, CVE-2024-6866
gunicorn 22.0.0 23.0.0 Maintenance update
jsonschema 3.2.0 4.23.0 Maintenance update

Node.js dependency updates (9 package-lock.json files)

All 9 non-deprecated Node.js components now have 0 npm audit vulnerabilities.

Package From To Issues Fixed
express 4.21.2 4.22.1 path-to-regexp ReDoS, qs DoS, body-parser issues
tar-fs 2.1.2 2.1.4 GHSA-vj76-c3g6-qr5v, GHSA-8cj5-5rvv-wf4v
+ picomatch, minimatch, flatted, js-yaml, brace-expansion, ajv

Dockerfile updates

Component Change
preprocessors/object-detection-azure Updated base image from python:3.9-alpine to python:3.13.9-alpine3.22
preprocessors/sorting Updated base image from python:3.8-alpine to python:3.13.9-alpine3.22

Compatibility analysis

All Python services use basic Flask APIs (Flask, request, jsonify) with no usage of removed/deprecated features. The few Werkzeug imports (FileWrapper, BaseConverter) remain available in the new versions. All new dependency versions were verified against the GitHub Advisory Database.

Not updated (high risk of code breakage)

  • torch/torchvision: Upgrades could break ML model loading and inference
  • express 5.x: Major breaking API changes across all Node.js components

Testing

  • pip-audit confirms all non-deprecated Python components are vulnerability-free
  • npm audit confirms 0 vulnerabilities across all 9 Node.js components
  • Code review: passed with no issues
  • CodeQL: no code changes to analyze (dependency-only updates)
  • Merge conflicts with main resolved (Flask==3.1.3 accepted from main; Dockerfile updates incorporated)

…s all non-deprecated components

Agent-Logs-Url: https://github.com/Shared-Reality-Lab/IMAGE-server/sessions/5eef10f8-42b4-4307-a1b7-4c4770ea980c

Co-authored-by: jeffbl <2095406+jeffbl@users.noreply.github.com>
@jeffbl jeffbl self-assigned this Mar 31, 2026
@jeffbl
jeffbl self-requested a review April 14, 2026 15:26
Copilot AI and others added 2 commits April 14, 2026 15:53
…-to-3-1-2

[WIP] Update Flask dependency to 3.1.2 to fix Docker build failures
@jeffbl

jeffbl commented Apr 14, 2026

Copy link
Copy Markdown
Member

@copilot resolve the merge conflicts in this pull request

Resolve conflicts by accepting Flask==3.1.3 from main (security fix version)
and incorporating Dockerfile updates for object-detection-azure and sorting
to use Python 3.13.9-alpine3.22.

Co-authored-by: jeffbl <2095406+jeffbl@users.noreply.github.com>

Copilot AI commented Apr 14, 2026

Copy link
Copy Markdown
Contributor Author

@copilot resolve the merge conflicts in this pull request

Merge conflicts resolved in commit 6678939. The conflicts were all between Flask==3.1.2 (our branch) and Flask==3.1.3 (main, from PR #1191). Resolved by accepting main's Flask==3.1.3 across all 31 requirements.txt files, and also incorporated the Dockerfile updates for object-detection-azure and sorting to use python:3.13.9-alpine3.22.

@jeffbl
jeffbl marked this pull request as ready for review April 14, 2026 20:03
@jeffbl
jeffbl merged commit 4be4efa into main Apr 14, 2026
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