Skip to content

fix(security): remediate Critical/High CVEs from NSPECT-UV6I-R3V9 (NSPECT-S62Q-PZUD) - #731

Draft
nv-rag-cve-bot[bot] wants to merge 1 commit into
developfrom
cve-fix/NSPECT-S62Q-PZUD-20260815-023744
Draft

nv-rag-cve-bot[bot] wants to merge 1 commit into
developfrom
cve-fix/NSPECT-S62Q-PZUD-20260815-023744

Conversation

@nv-rag-cve-bot

Copy link
Copy Markdown

Summary

  • nSpect program: NSPECT-S62Q-PZUD (collection) / child NSPECT-UV6I-R3V9 (container)
  • CVE surface: container — 20 Python packages + JS transitive deps
  • Track: A (Verified Fix) — pip-audit confirmed 0 vulnerabilities post-fix
  • Validation: pipeline mode — §5b/§5c/§5d deferred to CI

Raises version floors for 20 Python packages and expands JS dependency overrides to clear all Critical/High nSpect container-surface findings from program version 26.05.2.

Python changes (pyproject.toml + uv.lock)

Direct dependency floor bumps:

Package Before After Advisory
bleach >=6.2 >=6.4 GHSA-gj48-438w-jh9v, GHSA-8rfp-98v4-mmr6
fastapi >=0.115.5 >=0.135.0 Unlocks starlette 1.x (0.115.5 pinned starlette<0.51.0)
langchain >=1.3.1 >=1.3.9 GHSA-gr75-jv2w-4656 / CVE-2026-55443
python-multipart >=0.0.27 >=0.0.31 GHSA-5rvq-cxj2-64vf, GHSA-6jv3-5f52-599m, GHSA-v9pg-7xvm-68hf

uv override-dependencies (transitive):

JS changes (frontend/package.json + lockfiles)

  • uuid: ^11.1.1 (was ^11.1.0) — GHSA-w5hq-g745-h8pq
  • react-router-dom: ^7.15.0 (was ^7.12.0) — security patch
  • npm overrides + pnpm.overrides for transitive dev/build tools: rollup, tar, nanoid, postcss, brace-expansion, js-yaml, glob, minimatch, picomatch, flatted, ws, @babel/core, ajv

Guardrail tests

tests/unit/test_security_dependency_pins.py — 14 version-floor assertions (one per advisory cluster) that prevent regression.

Validation results

Check Result
pip-audit ✅ 0 vulnerabilities
npm audit ✅ 0 vulnerabilities
pnpm audit ✅ 0 vulnerabilities
Security pin tests (14) ✅ 14/14 PASSED
Unit tests (non-network) ✅ 67/67 PASSED
Integration/lint/smoke ⏳ Deferred to CI (pipeline mode)

Known open items

⚠️ pyarrow GHSA-rgxp-2hwp-jwgg — Current pin >=21.0,<22.0 blocks the fix (requires >=23.0.1). The <22.0 ceiling must be widened after validating nv-ingest compatibility with pyarrow 23.x. This is a separate follow-up PR — do not merge this PR as "fully remediated" for pyarrow.

ℹ️ OS-level CVEs (CPython html.parser, bz2, OpenSSL in rag-frontend base image) are deferred — base-image upgrade required.

Test plan

  • CI unit tests pass (including the 14 new security pin guards)
  • CI lint (ruff check/format) passes
  • Docker image builds succeed
  • GPU docker-tests chain passes (gating — --ci-wait-gpu)
  • Reviewer validates pyarrow follow-up is tracked

🤖 Generated with Claude Code via /agentic-cve-fix NSPECT-S62Q-PZUD

…ild of NSPECT-S62Q-PZUD)

Raises version floors for 20 Python packages and adds/expands JS dependency
overrides to clear all Critical/High nSpect container-surface findings.

## Python fixes (pyproject.toml + uv.lock)

Direct dependency floor bumps:
- bleach: >=6.2 → >=6.4  (GHSA-gj48-438w-jh9v, GHSA-8rfp-98v4-mmr6)
- fastapi: >=0.115.5 → >=0.135.0  (unlocks starlette 1.x; 0.115.5 pinned starlette<0.51.0)
- langchain: >=1.3.1 → >=1.3.9  (GHSA-gr75-jv2w-4656 / CVE-2026-55443)
- python-multipart: >=0.0.27 → >=0.0.31  (GHSA-5rvq-cxj2-64vf, GHSA-6jv3-5f52-599m, GHSA-v9pg-7xvm-68hf)

uv override-dependencies (transitive fixes):
- starlette>=1.3.1  (GHSA-82w8-qh3p-5jfq + 4 cluster advisories; requires fastapi bump above)
- pillow>=12.3.0  (12-advisory cluster fixed in 12.3.0)
- cryptography>=50.0.0  (CVE-2026-69247/69248/69249)
- urllib3>=2.7.0  (CVE-2026-44432)
- aiohttp>=3.14.3  (GHSA-4m7w-qmgq-4wj5 + 12 more)
- orjson>=3.11.6  (GHSA-hx9q-6w63-j58v)
- langsmith>=0.8.18  (GHSA-f4xh-w4cj-qxq8 / CVE-2026-59152)
- transformers>=5.1.0  (CVE-2026-1839)
- langgraph-sdk>=0.3.15  (GHSA-w39p-vh2g-g8g5 / CVE-2026-48776)
- pydantic-settings>=2.14.2  (GHSA-4xgf-cpjx-pc3j / CVE-2026-58203)
- click>=8.3.3  (GHSA-47fr-3ffg-hgmw / CVE-2026-7246)
- setuptools>=83.0.0  (GHSA-x28q-2c3f-v7p3)

## JS fixes (frontend/package.json + pnpm-lock.yaml)

Direct dep bumps:
- uuid: ^11.1.0 → ^11.1.1  (GHSA-w5hq-g745-h8pq)
- react-router-dom: ^7.12.0 → ^7.15.0  (security patch release)

npm + pnpm transitive overrides:
- rollup, tar, nanoid, postcss, brace-expansion, js-yaml, glob,
  minimatch, picomatch, flatted, ws, @babel/core, ajv

## Guardrail tests

Adds/updates tests/unit/test_security_dependency_pins.py with 14 version-floor
assertions (one per advisory cluster) to prevent regression.

## Known open items

- pyarrow GHSA-rgxp-2hwp-jwgg: pin <22.0 blocks fix (requires >=23.0.1);
  follow-up needed to validate nv-ingest compat with pyarrow 23.x
- OS/CPython/OpenSSL CVEs: base-image deferred (--include-base-image not set)

Signed-off-by: NVIDIA RAG <foundational-rag-dev@exchange.nvidia.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: NVIDIA RAG <foundational-rag-dev@exchange.nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Aug 15, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

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.

0 participants