Skip to content

fix(deps): audit all CI extras and upgrade vulnerable packages - #1808

Open
mldangelo-oai wants to merge 1 commit into
mainfrom
fix/dependency-security-audit-deadlock
Open

fix(deps): audit all CI extras and upgrade vulnerable packages#1808
mldangelo-oai wants to merge 1 commit into
mainfrom
fix/dependency-security-audit-deadlock

Conversation

@mldangelo-oai

@mldangelo-oai mldangelo-oai commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Audit the same all-ci dependency graph CI installs, including every pinned transitive dependency without launching another resolver.
  • Update aiohttp to 3.14.3, cryptography to 50.0.0, GitPython to 3.1.58, and Keras to 3.15.0 to address 19 open Dependabot alerts.
  • Replace the full MLflow server with its already-present secure mlflow-skinny tracking client while retaining every registry and artifact API ModelAudit imports.
  • Add regression floors for all four packages, require the secure tracking client in every MLflow extra, and enforce complete CI audit coverage.

Why these changes belong together

The individual aiohttp and cryptography dependency PRs deadlock because each leaves the other's audit failures. Upgrading cryptography while retaining full MLflow forces MLflow 3.2.0 and PyArrow 21.0.0, introducing 27 vulnerabilities the current base-only audit misses. mlflow-skinny already exists in the current dependency graph and contains every API the integration uses, allowing patched cryptography without that vulnerable server downgrade or a new package dependency.

Validation

  • Before: new version-floor regressions failed for all four current lock entries; the insecure MLflow fallback failed its tracking-client and audit-coverage regressions.
  • After: dependency, workflow, and release suite: 157 passed; one unrelated macOS-host invalid-UTF8 path test was deselected.
  • Actual skinny-only MLflow integration: 178 passed, 1 skipped; skinny-only MLflow CLI: 12 passed.
  • Nightly-adjacent constructor and Joblib regressions: 34 passed.
  • Broader macOS fast-suite smoke run: 3,411 passed before three known cache failures on unchanged code; those Darwin ancestor-churn failures are separately addressed by fix(cache): preserve macOS entries during ancestor churn #1800.
  • Current all-ci and all-extras pinned dependency graphs both report No known vulnerabilities found.
  • Full-repository Ruff lint and format, changed-file mypy, and changed Markdown/YAML Prettier checks passed.
  • Full local mypy reproduces 14 pre-existing errors in six unchanged baseline files; GitHub Actions will verify Linux lock consistency and the complete CI matrix on this exact head.

@mldangelo-oai

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🚀

Reviewed commit: 5dce549176

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@github-actions

Copy link
Copy Markdown
Contributor

Workflow run and artifacts

Performance Benchmarks

Compared 13 shared benchmarks with a regression threshold of 15%.
Status: 0 regressions, 0 improved, 13 stable, 0 new, 0 missing.
Aggregate shared-benchmark median: 4.369s -> 4.374s (+0.1%).

Workload Benchmark Target Size Files Baseline Current Change Status
nested-payload-review tests/benchmarks/test_picklescan_benchmarks.py::test_picklescan_nested_payload_review[nested_raw] nested_raw 78 B 1 269.4us 284.1us +5.5% stable
padded-multi-stream-upload tests/benchmarks/test_picklescan_benchmarks.py::test_picklescan_padded_multi_stream_upload multi_stream_padded 4.1 KiB 1 330.8us 344.1us +4.0% stable
nested-payload-review tests/benchmarks/test_picklescan_benchmarks.py::test_picklescan_nested_payload_review[nested_base64] nested_base64 98 B 1 300.3us 295.6us -1.5% stable
mixed-model-repository tests/benchmarks/test_scan_benchmarks.py::test_scan_release_candidate_repository release-candidate 547.3 KiB 32 633.04ms 640.45ms +1.2% stable
duplicate-heavy-registry tests/benchmarks/test_scan_benchmarks.py::test_scan_duplicate_registry_snapshot registry-snapshot 915.2 KiB 13 578.34ms 574.57ms -0.7% stable
clean-training-checkpoint tests/benchmarks/test_picklescan_benchmarks.py::test_picklescan_clean_training_checkpoint safe_large 278.2 KiB 1 110.76ms 110.13ms -0.6% stable
direct-malicious-upload tests/benchmarks/test_picklescan_benchmarks.py::test_picklescan_direct_malicious_upload malicious_reduce 52 B 1 228.4us 227.4us -0.5% stable
suspicious-pickle-intake tests/benchmarks/test_scan_benchmarks.py::test_scan_suspicious_pickle_intake suspicious-intake 183.8 KiB 4 149.93ms 150.47ms +0.4% stable
warm-cache-rescan tests/benchmarks/test_scan_benchmarks.py::test_scan_warm_cached_repository_rescan release-candidate 547.3 KiB 32 155.50ms 155.03ms -0.3% stable
single-checkpoint-preflight tests/benchmarks/test_scan_benchmarks.py::test_scan_single_checkpoint_before_load single_checkpoint.pkl 183.0 KiB 1 104.26ms 104.52ms +0.3% stable
chunked-upload-stream tests/benchmarks/test_picklescan_benchmarks.py::test_picklescan_chunked_upload_stream chunked_stream 278.2 KiB 1 113.50ms 113.23ms -0.2% stable
rejected-basic-auth-candidates tests/benchmarks/test_scan_benchmarks.py::test_rejected_basic_auth_candidates_scan_linearly - 371.1 KiB 1 2.522s 2.525s +0.1% stable
nested-payload-review tests/benchmarks/test_picklescan_benchmarks.py::test_picklescan_nested_payload_review[nested_hex] nested_hex 130 B 1 305.4us 305.6us +0.1% stable

@chatgpt-codex-connector

Copy link
Copy Markdown

Security review completed. No security issues were found in this pull request.

Reviewed commit: 5dce549176

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@codecov-commenter

codecov-commenter commented Aug 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 76.29%. Comparing base (c29586b) to head (5dce549).

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #1808   +/-   ##
=======================================
  Coverage   76.29%   76.29%           
=======================================
  Files         217      217           
  Lines      115676   115676           
  Branches    27245    27245           
=======================================
+ Hits        88256    88257    +1     
  Misses      20023    20023           
+ Partials     7397     7396    -1     

see 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants