fix: bump pyjwt for security advisories#751
Conversation
Signed-off-by: Johnny Greco <jogreco@nvidia.com>
Greptile SummaryThis PR fixes a transitive PyJWT vulnerability by pinning
|
| Filename | Overview |
|---|---|
| packages/data-designer-engine/pyproject.toml | Adds pyjwt[crypto]>=2.13.0,<3 as an explicit direct dependency to enforce the security floor; follows the same pattern already used for cryptography and python-multipart in this file. |
| uv.lock | Lock file regenerated correctly: pyjwt bumped from 2.12.0 to 2.13.0, [crypto] extra wired up, new typing-extensions marker added for Python < 3.11, and hashes updated. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[data-designer-engine] -->|direct dep| B[mcp >=1.26.0,<2]
B -->|transitive dep| C[pyjwt]
A -->|new security floor| D["pyjwt[crypto] >=2.13.0,<3"]
D -->|pins to| E[pyjwt 2.13.0]
C -.->|without floor resolves to| F[pyjwt 2.12.0 vulnerable]
A -->|existing dep| G[cryptography >=46.0.7,<47]
D -->|crypto extra requires| G
Reviews (2): Last reviewed commit: "Merge branch 'main' into johnny/fix-pyjw..." | Re-trigger Greptile
Code Review: PR #751 — fix: bump pyjwt for security advisoriesSummaryPins This follows the exact pattern used at line 55 for FindingsCorrectness
Conventions
Risk / Blast Radius
Test Coverage
Security
Performance
Suggestions (Optional)
VerdictApprove. Minimal, targeted security fix that matches an established in-repo pattern. The PyPI metadata, lock file, and mcp test suite all align. No code changes, no test changes needed. Ship it. |
📋 Summary
This PR addresses the scanner-reported PyJWT vulnerability by ensuring DataDesigner resolves PyJWT to the fixed 2.13.0 release.
mcppulls inpyjwt[crypto], so the engine package now declares an explicit security floor to prevent the vulnerable 2.12.0 resolution from returning.🔗 Related Issue
N/A
🔄 Changes
pyjwt[crypto]>=2.13.0,<3dependency constraint inpackages/data-designer-engine/pyproject.toml.uv.locksopyjwtresolves to2.13.0instead of2.12.0.🔍 Attention Areas
packages/data-designer-engine/pyproject.toml— this intentionally promotespyjwt[crypto]from transitive dependency to direct security floor because it is pulled in throughmcp.🧪 Testing
make testpasses (not run; dependency-only security update)uv lock --checkuv run --package data-designer-engine python -c "import jwt; print(jwt.__version__)"→2.13.0uv run --package data-designer-engine pytest packages/data-designer-engine/tests/engine/mcp -q→119 passed✅ Checklist