Skip to content

Update vulnerable dependencies using workspace security constraints - #105

Merged
nabinchha merged 4 commits into
mainfrom
codex/fix-october-vulnerabilities
Oct 27, 2026
Merged

nabinchha merged 4 commits into
mainfrom
codex/fix-october-vulnerabilities

Conversation

@nabinchha

@nabinchha nabinchha commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

What

Update the workspace lockfile and root security constraints for the supplied October 25 report (44 findings across seven dependencies), following DataDesigner's transitive dependency guidance.

Remove transitive-only security floors from published plugin requirements. Retain updated filelock, NLTK, and Pillow requirements in retrieval-sdg because that plugin directly imports them. All plugins now require DataDesigner 0.9.7+, which supplies the exceptional CA trust remediation through data-designer-config.

Why

Transitive security floors belong in application lockfiles, with workspace constraints where needed to preserve them during resolution. Publishing these dependencies in every plugin unnecessarily expands package requirements and duplicates upstream policy.

The following recommendations serve as the dependency security release notes for downstream applications:

Dependency Recommended requirement Locked version Report coverage
MCP >=1.30.0,<2 1.30.0 CVE-2026-59951
NLTK >=3.10.4,<3.11 3.10.4 CVE-2026-81726
fsspec >=2026.6.0 2026.9.0 CVE-2026-104851
certifi >=2026.10.19 2026.10.23 BDSA-2026-37951 / eMudhra
filelock, Python 3.11+ >=4.2.1,<5 4.2.4 CVE-2026-112940
filelock, Python 3.10 >=3.20,<3.20.4 3.20.3 Excludes the affected ReadWriteLock implementation
Pillow, Python 3.11+ >=13.0.0 13.0.0 Reported Pillow findings on Python 3.11+; current advisory lists 13.0.0 as patched for CVE-2026-114501

Unresolved findings:

  • OpenTelemetry CVE-2026-114603: DataDesigner 0.9.7 requires API/SDK >=1.43,<1.44, conflicting with patched API >=1.45.1. API 1.43.0 remains locked pending an upstream compatibility update.
  • All 38 reported Pillow findings on Python 3.10: Pillow 13 requires Python 3.11+, and no patched 12.x release is available as of October 26. Python 3.10 retains Pillow 12.3.0 to preserve the repository's supported baseline. Use Python 3.11+ for patched Pillow.

Pillow advisory check (October 27): #1093 describes CVE-2026-114501 as unresolved on 13.0.0, but the current Pillow advisory and both GitHub advisory APIs list affected versions >=11.2.1,<13.0.0 and patched version 13.0.0. This PR follows that current published range; the upstream PR note needs reconciliation.

This PR does not claim a clean vulnerability scan. Related upstream work: DataDesigner #1093 adds generated optional pip/uv constraints and recurring dependency audits. It is currently open; its constraints should be reviewed for compatibility with this repository's Python 3.10 baseline before adoption (notably its unconditional filelock 4.x floor).

Usage

Run make sync to install the updated workspace lockfile. Downstream applications should upgrade their own lockfiles:

uv lock --upgrade-package certifi --upgrade-package filelock --upgrade-package fsspec \
    --upgrade-package mcp --upgrade-package nltk --upgrade-package pillow

If a floor does not survive re-resolution, add it to the application's root [tool.uv].constraint-dependencies. Preserve this PR's Python markers for filelock and Pillow when supporting Python 3.10. Root constraints are not published in plugin metadata.

Re-run the vulnerability scanner against the installed environment. Scans that ignore Python markers may also report the retained Python 3.10 Pillow entry in the universal lockfile.

How

  • Keep compatible security upgrades in uv.lock and durable root constraints.
  • Remove published transitive-only floors, including pre-existing entries, while retaining actual direct dependencies.
  • Raise the DataDesigner minimum to 0.9.7 for the CA trust exception; the locked DataDesigner family moves from 0.9.4 to 0.9.7.
  • Replace retrieval-sdg's filelock <4 cap with interpreter-specific requirements and use matching markers for Pillow.
  • Set the scaffold default to DataDesigner 0.9.7 and test generated requirements for column generators, seed readers, and processors. Update catalog test expectations. No standalone security documentation file is added.

Validation

  • make sync and make all — passed after the metadata changes. Includes Ruff, 156 devtools tests, isolated plugin tests, plugin validation, metadata/license checks, strict documentation build, and package index build. Retrieval-sdg: 541 passed, 2 skipped.

  • make codeowners and make check-license-headers — passed.

  • uv lock --check and git diff --check — passed.

  • Independent uv pip compile <plugin>/pyproject.toml --python-version 3.10 --no-header --no-annotate — passed for all five plugins.

  • Verified published requirements contain no transitive-only security floors and installed Python 3.11 packages satisfy the six compatible patched-version floors.

  • The originating vulnerability scanner was not rerun; coverage follows the report's affected ranges and resolved package versions.

  • Scaffold follow-up: make sync, make lint test-devtools validate check, uv lock --check, and git diff --check passed; 159 devtools tests passed. The new scaffold regression failed for all three plugin types before the default was fixed.

Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com>
Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com>
Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com>
@nabinchha nabinchha changed the title Update dependencies for October vulnerability findings Update vulnerable dependencies using workspace security constraints Oct 26, 2026
Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com>

@andreatnvidia andreatnvidia left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As a non-blocking follow-up, let's raise the Python minimum to 3.11 and require Pillow >=13.0.0 unconditionally, matching DataDesigner's new baseline. Python 3.10 still uses Pillow 12.3.0 and retains all 38 reported Pillow findings.

@nabinchha

Copy link
Copy Markdown
Contributor Author

We'll create a follow-up PR to raise the Python minimum to 3.11 and require Pillow >=13.0.0 unconditionally once DataDesigner ships its next version with the new baseline.

@nabinchha
nabinchha merged commit aff2a3c into main Oct 27, 2026
14 checks passed
@nabinchha
nabinchha deleted the codex/fix-october-vulnerabilities branch October 27, 2026 18:36
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.

2 participants