Repository navigation
chore: add dependency security constraints and audits - #1093
Conversation
Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com>
|
Fern preview: https://nvidia-preview-pr-1093.docs.buildwithfern.com/nemo/datadesigner
|
|
Thanks for putting this together, @nabinchha. Getting security floors to downstream pip users and adding recurring audits is a useful gap to close. SummaryThis PR moves the reviewed security floors into FindingsSuggestions — Take it or leave it
What Looks Good
Residual Risk
Structural Impact(graphify 0.9.92, 8.8s) Risk: LOW (localized change)
VerdictShip it (with nits). I found nothing blocking. The suggestions above are optional hardening and docs clarity. This review was generated by an AI assistant. |
[Medium impact] The PR appears safe to merge; no new actionable issue was found. SummaryAdds optional dependency constraints and recurring dependency audits.
The earlier fresh-checkout issue is fixed: both audit paths generate the ignored e2e lockfile before auditing it. No new actionable issue was established.
|
Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com>
|
Addressed the suggestions in this review in ae2f715:
Also fixed the missing-e2e-lockfile finding from the inline review by resolving e2e dependencies before auditing. Validation: 11 focused tests passed, fresh-checkout audit regression passed, all three security CI checks passed, and Fern/internal-link validation passed. The documented unpatched Pillow advisory remains open despite the passing OSV scans. |
binaryaaron
left a comment
There was a problem hiding this comment.
A few suggestions on the constraints export and the new workflow; none blocking.
Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com>
Retain virtualenv 21.14.13 to satisfy the security floor. Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com>
| "filelock>=4.2.1", | ||
| "idna>=3.15", | ||
| "pydantic-settings>=2.14.2", | ||
| "PyJWT>=2.14.0", |
There was a problem hiding this comment.
These floors still allow PyJWT 2.14.0 and virtualenv 21.14.12, which have known vulnerabilities fixed in PyJWT 2.15.0 and virtualenv 21.14.13. A downstream app pinned to either affected version can apply our constraints and retain it. The lockfile audits miss this because they check newer versions. Let's raise both floors, mirror the PyJWT change in the e2e manifest, and regenerate constraints.txt.
There was a problem hiding this comment.
Fixed in 3543112. Raised the workspace floors to PyJWT>=2.15.0 and virtualenv>=21.14.13, mirrored PyJWT in the e2e manifest, and regenerated constraints.txt and lock metadata. The locked versions were already newer, so no resolved package versions changed.
Verified the exported specifiers reject PyJWT 2.14.0 and virtualenv 21.14.12 while accepting the patched floors. Both audits and 87 focused tests passed (2 skipped).
|
|
||
| ### Known Unresolved Advisory | ||
|
|
||
| As of October 26, 2026, [CVE-2026-114501 / GHSA-654x-cwwv-5j9c](https://github.com/python-pillow/Pillow/security/advisories/GHSA-654x-cwwv-5j9c) affects Pillow 11.2.1 through 13.0.0, and upstream lists no patched release. It can expose uninitialized memory when exporting images to Arrow with `PILLOW_ALIGNMENT` set above 1. Avoid that combination while the advisory remains unresolved. |
There was a problem hiding this comment.
The Pillow advisory changed on October 27 and now lists 13.0.0 as patched. Could we refresh this section and the matching paragraph in DEVELOPMENT.md? Both still describe 13.0.0 as affected with no patched release available.
There was a problem hiding this comment.
Confirmed against the updated upstream advisory: it now lists affected versions as >=11.2.1,<13.0.0 and 13.0.0 as patched.
Fixed in 3543112 by removing the dated unresolved-advisory section and the matching DEVELOPMENT.md paragraph. Both guides now keep a general caveat about advisory-database coverage instead of a static CVE-status entry that can become stale. The existing Pillow >=13 package requirement remains in place, and I corrected the PR description too. Fern and internal-link checks passed.
Signed-off-by: Nabin Mulepati <nmulepati@nvidia.com>
📋 Summary
Publish optional pip/uv constraints for transitive dependency security floors, generated from the workspace uv configuration. Audit dependencies daily and before dependency-related changes land, without adding failed security checks to unrelated PRs.
🔗 Related Issue
N/A — maintainer-requested security improvements. Overlaps #1091: this PR retains the same published Pillow minimum and matching Colab setup while adding maintained constraints and recurring audits.
🔄 Changes
constraint-dependenciesand generatedconstraints.txtfor transitive floors, removing duplicated direct floors.make update-security-constraintsandmake check-security-constraints. Declare Python and packaging requirements through inline script metadata; remove extras for pip compatibility while preserving markers and direct URLs.pip install data-designeras the main installation command, with constraints in an optional note. Document transitive dependency maintenance, older-release compatibility, and the unresolved Pillow advisory. No Dev Notes changes.🔍 Attention Areas
🧪 Testing
make check-vulnerabilities: no OSV findings in 189 workspace and 92 e2e packages; both lockfile consistency checks passed.✅ Checklist