Skip to content

fix: address critical and high CVE findings - #1103

Merged
mckornfield merged 5 commits into
mainfrom
address-cve-findings/rsadler
Aug 7, 2026
Merged

fix: address critical and high CVE findings#1103
mckornfield merged 5 commits into
mainfrom
address-cve-findings/rsadler

Conversation

@mckornfield

@mckornfield mckornfield commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

  • address Pulse OSS findings from Platform-Deploy security.yml run 31002650434
  • update Python, Go, and Studio web dependencies for reported Critical/High rows
  • extend container cleanup for Perl/Pillow findings

CVE Notes

  • No additional pre-PR CVE refresh is needed for this remediation PR; the branch is based on the available Pulse container and OSS artifacts.
  • A fresh container build and Pulse scan is still required after CI/build artifacts exist to prove the container-only rows disappear.
  • PR fix(customizer): fix CVEs + vllm venv issue #1056 remains relevant RL context, but is not merged into this branch.
  • Remaining OSS LangChain/ragas rows are not addressed here because langchain-community<0.4 is currently capped for ragas 0.4.3 compatibility, and the Pulse OSS report gives ragas unknown upgrade guidance.

Verification

  • uv lock --check
  • cd services/core/jobs/jobs-launcher && go test ./...
  • cd services/guardrails/callouts && go test ./...
  • cd web && pnpm install --lockfile-only
  • rg -n "vitest@4\\.1\\.9|@vitest/(coverage-v8|ui)@4\\.1\\.9|vitest: \\^4\\.1\\.9|version: 4\\.1\\.9" web/pnpm-workspace.yaml web/pnpm-lock.yaml
  • git diff --check origin/main...HEAD
  • bash -n docker/scripts/cve-cleanup.sh
  • docker buildx bake --print nmp-cpu-tasks-docker

Caveats

  • Studio tests were not run locally because this machine has Node v22.18.0, below the repo requirement >=22.23.2 <23.
  • web/node_modules was not cleaned or refreshed; only the lockfile was updated.

Summary by CodeRabbit

  • Bug Fixes

    • Addressed security vulnerabilities in runtime images by removing stale Pillow package files and applying updated cleanup during builds.
    • Improved consistency across container runtime environments.
  • Maintenance

    • Updated GitPython, pyasn1, Pillow, and code-generation dependencies.
    • Updated gRPC tooling and frontend test dependencies.
    • Refreshed dependency requirements across task, training, and automation images.

@mckornfield
mckornfield requested review from a team as code owners August 5, 2026 19:45
@github-actions github-actions Bot added the fix label Aug 5, 2026
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor
Suite Lines Covered Line Rate Branch Rate
Unit Tests 31439/40061 78.5% 63.0%
Integration Tests 18306/38013 48.2% 20.8%

@mckornfield
mckornfield requested a review from ironcommit August 5, 2026 19:57
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 74033bd3-0bb8-45e5-9704-a04318afa02a

📥 Commits

Reviewing files that changed from the base of the PR and between c71ca67 and 79d43ac.

⛔ Files ignored due to path filters (3)
  • services/guardrails/callouts/go.sum is excluded by !**/*.sum
  • uv.lock is excluded by !**/*.lock
  • web/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (9)
  • docker/Dockerfile.auditor-tasks
  • docker/Dockerfile.nmp-cpu-tasks
  • docker/Dockerfile.nmp-unsloth-training
  • docker/automodel/Dockerfile.nmp-automodel-base
  • docker/scripts/cve-cleanup.sh
  • pyproject.toml
  • services/core/models/pyproject.toml
  • services/guardrails/callouts/go.mod
  • web/pnpm-workspace.yaml
🚧 Files skipped from review as they are similar to previous changes (9)
  • services/core/models/pyproject.toml
  • pyproject.toml
  • services/guardrails/callouts/go.mod
  • docker/scripts/cve-cleanup.sh
  • docker/automodel/Dockerfile.nmp-automodel-base
  • docker/Dockerfile.nmp-cpu-tasks
  • docker/Dockerfile.nmp-unsloth-training
  • docker/Dockerfile.auditor-tasks
  • web/pnpm-workspace.yaml

📝 Walkthrough

Walkthrough

The changes raise dependency minimums and update Docker image remediation. Runtime builds now install the CVE cleanup script, pin Pillow, and remove stale Pillow files.

Changes

Dependency and image remediation

Layer / File(s) Summary
Dependency constraint updates
pyproject.toml, docker/Dockerfile.auditor-tasks, docker/automodel/Dockerfile.nmp-automodel-base, services/core/models/pyproject.toml, services/guardrails/callouts/go.mod, web/pnpm-workspace.yaml
Dependency minimums and catalog versions were raised for GitPython, pyasn1, datamodel-code-generator, gRPC, and Vitest packages.
Docker image remediation
docker/Dockerfile.nmp-cpu-tasks, docker/Dockerfile.nmp-unsloth-training, docker/automodel/Dockerfile.nmp-automodel-base, docker/scripts/cve-cleanup.sh
Docker builds now run the CVE cleanup script, install constrained Pillow versions, and remove stale Pillow packages, native libraries, and metadata.

Possibly related PRs

Suggested reviewers: ironcommit

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the primary change: remediation of critical and high CVE findings.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch address-cve-findings/rsadler

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 4

🧹 Nitpick comments (1)
CVE_SUMMARY.md (1)

1-5: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add the required documentation structure.

This page records facts and verification evidence, so classify it as REFERENCE. Put a short status summary and a ## Prerequisites section before ## Artifacts Reviewed. Add a ## Next Steps section after ## Verification for the required image rescan and Studio tests.

As per coding guidelines, Markdown pages must fit one Diataxis quadrant, list prerequisites at the top, and include a Next Steps section at the end.

Also applies to: 96-97

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@CVE_SUMMARY.md` around lines 1 - 5, Add the required REFERENCE-page structure
in CVE_SUMMARY.md: place a concise status summary and a ## Prerequisites section
before ## Artifacts Reviewed, and add ## Next Steps after ## Verification
describing the required image rescan and Studio tests. Keep the page focused on
factual evidence and verification.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CVE_SUMMARY.md`:
- Around line 77-78: Update the verification command in CVE_SUMMARY.md to invoke
summarize_findings.py through a repository-relative path or another portable
tool location, removing the host-specific /home/mkornfield/home/skills prefix.
Verify the documented command works from a fresh checkout before retaining it.
- Around line 49-51: Update the `nmp-cpu-tasks`, `nmp-automodel-training`, and
`nmp-unsloth-training` entries in `CVE_SUMMARY.md` to describe their
remediations as expected or pending rather than confirmed. Reserve definitive
“addressed” wording until rebuilt images receive a fresh Pulse scan confirming
the package fixes and stale-file removal.

In `@docker/scripts/cve-cleanup.sh`:
- Around line 90-92: Update the Pillow cleanup command in the CVE cleanup script
to remove the packages from the active /app/.venv Python 3.13 environment
instead of the Python 3.12 system paths, covering the Pillow package, native
libraries, and dist-info metadata; then verify the rebuilt CPU image no longer
contains the vulnerable installation.

In `@pyproject.toml`:
- Line 269: Update the Automodel image dependency constraints in its Dockerfile
to require GitPython>=3.1.57,<4 and pyasn1>=0.6.4,<1, matching the project
dependency floors. Rebuild the image and run the image security scan to verify
the updated constraints.

---

Nitpick comments:
In `@CVE_SUMMARY.md`:
- Around line 1-5: Add the required REFERENCE-page structure in CVE_SUMMARY.md:
place a concise status summary and a ## Prerequisites section before ##
Artifacts Reviewed, and add ## Next Steps after ## Verification describing the
required image rescan and Studio tests. Keep the page focused on factual
evidence and verification.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: ed093274-8705-4a3c-b777-6cc53d020f37

📥 Commits

Reviewing files that changed from the base of the PR and between 77f890f and e55d517.

⛔ Files ignored due to path filters (3)
  • services/guardrails/callouts/go.sum is excluded by !**/*.sum
  • uv.lock is excluded by !**/*.lock
  • web/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (10)
  • CVE_SUMMARY.md
  • docker/Dockerfile.auditor-tasks
  • docker/Dockerfile.nmp-cpu-tasks
  • docker/Dockerfile.nmp-unsloth-training
  • docker/automodel/Dockerfile.nmp-automodel-base
  • docker/scripts/cve-cleanup.sh
  • pyproject.toml
  • services/core/models/pyproject.toml
  • services/guardrails/callouts/go.mod
  • web/pnpm-workspace.yaml

Comment thread CVE_SUMMARY.md Outdated
Comment thread CVE_SUMMARY.md Outdated
Comment thread docker/scripts/cve-cleanup.sh
Comment thread pyproject.toml
Signed-off-by: Matt Kornfield <mkornfield@nvidia.com>
Signed-off-by: Matt Kornfield <mkornfield@nvidia.com>
Signed-off-by: Matt Kornfield <mkornfield@nvidia.com>
@mckornfield
mckornfield force-pushed the address-cve-findings/rsadler branch from fd6f6df to 79d43ac Compare August 6, 2026 16:07
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@mckornfield
mckornfield added this pull request to the merge queue Aug 7, 2026
Merged via the queue into main with commit 1b39fc5 Aug 7, 2026
53 checks passed
@mckornfield
mckornfield deleted the address-cve-findings/rsadler branch August 7, 2026 15:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants