Skip to content

[rhoai-3.4] Fix 15 CVEs: pillow, soupsieve, pyasn1, starlette + llmcompressor unblock - #2699

Merged
mtchoum1 merged 5 commits into
rhoai-3.4from
fix/cve-batch-rhoai-3.4-round2
Aug 11, 2026
Merged

[rhoai-3.4] Fix 15 CVEs: pillow, soupsieve, pyasn1, starlette + llmcompressor unblock#2699
mtchoum1 merged 5 commits into
rhoai-3.4from
fix/cve-batch-rhoai-3.4-round2

Conversation

@crackcodecamp

@crackcodecamp crackcodecamp commented Aug 4, 2026

Copy link
Copy Markdown
Member

Summary

Batch CVE remediation (round 2) for Notebooks Images on rhoai-3.4. Updates constraints in dependencies/cve-constraints.txt and regenerates all lockfiles. Also bumps llmcompressor 0.10.0.1 → 0.10.0.3 to unblock pillow CVE fix for llmcompressor images.

CVEs Fixed (15 CVEs, 4 packages, all 18 images)

Package CVEs Version Change Images
pillow CVE-2026-59200, 54058, 59199, 59197, 59205, 59204, 54060, 55380, 55379, 42311 12.2.0 → 12.3.0 All 18 (including llmcompressor)
soupsieve CVE-2026-49476, CVE-2026-49477 2.8.3 → 2.8.4 16
pyasn1 CVE-2026-59886, CVE-2026-59884 0.6.3 → 0.6.4 14
starlette CVE-2026-54283 1.2.0 → 1.3.1 14

llmcompressor Unblock

llmcompressor 0.10.0.1 pinned pillow<=12.1.1, blocking the pillow>=12.3.0 constraint for jupyter/pytorch+llmcompressor and runtimes/pytorch+llmcompressor. Bumped to 0.10.0.3 (same 0.10.x branch patch, no breaking changes) which relaxes pillow to <13.0.0.

Testing

  • pytest tests/test_main.py — 11 passed, 18 skipped, 902 subtests passed (matches baseline, no regressions)

Test plan

  • pytest tests/test_main.py passes (no regressions)
  • Konflux builds pass: /build-konflux
  • ROCm tensorflow builds: /build-tensorflow-rocm
  • llmcompressor builds: /kfbuild odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-ubi9

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Updated CVE minimum versions, pinned requirements, package hashes, and generated uv lock metadata for Python 3.12 environments. Updated Pillow, pyasn1, SoupSieve, Starlette, and selected package artifacts across CPU, CUDA, and ROCm configurations.

Changes

Python dependency remediation

Layer / File(s) Summary
Dependency constraints and pinned requirements
dependencies/cve-constraints.txt, codeserver/.../requirements.*.txt, jupyter/**/requirements.*.txt, runtimes/**/requirements.*.txt
Raised CVE minimum versions and updated package pins and hashes.
Generated lock metadata
codeserver/**/uv.lock.d/*, jupyter/**/uv.lock.d/*, runtimes/**/uv.lock.d/*, rstudio/**/uv.lock.d/*
Regenerated uv metadata with the August 11, 2026 exclusion timestamp and refreshed package artifacts. TensorFlow lockfiles record SoupSieve 2.9.1.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related PRs

Suggested reviewers: ysok, mtchoum1

🚥 Pre-merge checks | ✅ 6
✅ Passed checks (6 passed)
Check name Status Explanation
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.
Branch Prefix Policy ✅ Passed GitHub PR 2699 has baseRefName rhoai-3.4 and title [rhoai-3.4] Fix CVEs: pillow, soupsieve, pyasn1, starlette; the required prefix matches.
Title check ✅ Passed The title uses imperative mood, has no trailing period, and accurately describes the CVE remediation and llmcompressor unblock.
Description check ✅ Passed The description clearly explains the dependency updates, CVEs, llmcompressor unblock, and completed testing; the required repository checklists are not fully reproduced.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/cve-batch-rhoai-3.4-round2
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch fix/cve-batch-rhoai-3.4-round2

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 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 `@dependencies/cve-constraints.txt`:
- Line 19: Update the llmcompressor lock-generation path to explicitly document
and apply an exception for the global pillow>=12.3.0 constraint, or update
llmcompressor to a version that supports Pillow 12.3.0 or newer; ensure
generated llmcompressor locks no longer conflict with the pinned pillow==12.1.1
dependency.
🪄 Autofix (Beta)

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: Repository YAML (base), Repository UI (inherited), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 5c6c1cff-6877-4dda-8d49-28f7834de0e3

📥 Commits

Reviewing files that changed from the base of the PR and between f479ded and 2b2162b.

📒 Files selected for processing (33)
  • codeserver/ubi9-python-3.12/requirements.cpu.txt
  • codeserver/ubi9-python-3.12/uv.lock.d/pylock.cpu.toml
  • dependencies/cve-constraints.txt
  • jupyter/datascience/ubi9-python-3.12/requirements.cpu.txt
  • jupyter/datascience/ubi9-python-3.12/uv.lock.d/pylock.cpu.toml
  • jupyter/minimal/ubi9-python-3.12/requirements.cpu.txt
  • jupyter/minimal/ubi9-python-3.12/requirements.cuda.txt
  • jupyter/minimal/ubi9-python-3.12/requirements.rocm.txt
  • jupyter/minimal/ubi9-python-3.12/uv.lock.d/pylock.cpu.toml
  • jupyter/minimal/ubi9-python-3.12/uv.lock.d/pylock.cuda.toml
  • jupyter/minimal/ubi9-python-3.12/uv.lock.d/pylock.rocm.toml
  • jupyter/pytorch/ubi9-python-3.12/requirements.cuda.txt
  • jupyter/pytorch/ubi9-python-3.12/uv.lock.d/pylock.cuda.toml
  • jupyter/rocm/pytorch/ubi9-python-3.12/requirements.rocm.txt
  • jupyter/rocm/pytorch/ubi9-python-3.12/uv.lock.d/pylock.rocm.toml
  • jupyter/rocm/tensorflow/ubi9-python-3.12/pylock.toml
  • jupyter/tensorflow/ubi9-python-3.12/requirements.cuda.txt
  • jupyter/tensorflow/ubi9-python-3.12/uv.lock.d/pylock.cuda.toml
  • jupyter/trustyai/ubi9-python-3.12/requirements.cpu.txt
  • jupyter/trustyai/ubi9-python-3.12/uv.lock.d/pylock.cpu.toml
  • rstudio/rhel9-python-3.12/uv.lock.d/pylock.cpu.toml
  • rstudio/rhel9-python-3.12/uv.lock.d/pylock.cuda.toml
  • runtimes/datascience/ubi9-python-3.12/requirements.cpu.txt
  • runtimes/datascience/ubi9-python-3.12/uv.lock.d/pylock.cpu.toml
  • runtimes/minimal/ubi9-python-3.12/requirements.cpu.txt
  • runtimes/minimal/ubi9-python-3.12/uv.lock.d/pylock.cpu.toml
  • runtimes/pytorch/ubi9-python-3.12/requirements.cuda.txt
  • runtimes/pytorch/ubi9-python-3.12/uv.lock.d/pylock.cuda.toml
  • runtimes/rocm-pytorch/ubi9-python-3.12/requirements.rocm.txt
  • runtimes/rocm-pytorch/ubi9-python-3.12/uv.lock.d/pylock.rocm.toml
  • runtimes/rocm-tensorflow/ubi9-python-3.12/pylock.toml
  • runtimes/tensorflow/ubi9-python-3.12/requirements.cuda.txt
  • runtimes/tensorflow/ubi9-python-3.12/uv.lock.d/pylock.cuda.toml

Comment thread dependencies/cve-constraints.txt

@jiridanek jiridanek left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

These does don't lock

Comment thread codeserver/ubi9-python-3.12/requirements.cpu.txt
@jiridanek

Copy link
Copy Markdown
Member

/hold known issue present, this update cannot be completed before llmcompressor 0.10.0.3 is onboarded, as per comment above

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

Superseded by newer run: https://github.com/red-hat-data-services/notebooks/actions/runs/31458102715

CI status [antigravity]

Run: Build Notebooks (pr) #3087936818229/29 complete · 26 passed · 2 failed · 1 skipped
Last updated: 2026-08-04T07:12:22Z after workflow update completed

Failures so far

Job Failed step Link
codeserver-ubi9-python-3.12 · linux/arm64 [rhoai] / rhoai Run Playwright tests logs
codeserver-ubi9-python-3.12 · linux/amd64 [rhoai] / rhoai Run Playwright tests logs

Likely root causes

  • Package Version Mismatch / Unavailability: The test TestJupyterLabDatascienceImage.test_mysql_connection failed because pip could not find a version satisfying mysql-connector-python==9.7.0 (only version 9.6.0 was available in the configured repository index https://console.redhat.com/api/pypi/public-rhai/rhoai/3.4/cpu-ubi9/simple/).
  • Podman / Testcontainers Inspection Error: Playwright / testcontainer setup tests failed with exit code 125 due to a JSON unmarshaling error (json: cannot unmarshal array into Go value of type define.InspectContainerData) when executing podman inspect.

Suggested next steps

  • Update the required version of mysql-connector-python or add version 9.7.0 to the repository index.
  • Investigate and fix the podman inspect JSON parsing issue within the testcontainer/Playwright test setup.

@jiridanek

Copy link
Copy Markdown
Member

@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown

Superseded by newer run: https://github.com/red-hat-data-services/notebooks/actions/runs/31458635129

CI status [antigravity]

Run: Build Notebooks (push) #314581027153/3 complete · 3 skipped
Last updated: 2026-08-11T04:19:32Z

No workbench image jobs ran; all matrix jobs were skipped.

@crackcodecamp crackcodecamp changed the title [rhoai-3.4] Fix CVEs: pillow, soupsieve, pyasn1, starlette [rhoai-3.4] Fix 15 CVEs: pillow, soupsieve, pyasn1, starlette + llmcompressor unblock Aug 11, 2026
Updates pillow constraint in dependencies/cve-constraints.txt and
regenerates lockfiles. pillow 12.2.0 → 12.3.0 across 10 images.
2 llmcompressor images excluded (llmcompressor pins pillow<=12.1.1).

CVEs: CVE-2026-59200, CVE-2026-54058, CVE-2026-59199, CVE-2026-59197,
CVE-2026-59205, CVE-2026-59204, CVE-2026-54060, CVE-2026-55380,
CVE-2026-55379, CVE-2026-42311
Adds constraint to dependencies/cve-constraints.txt and regenerates
lockfiles. soupsieve 2.8.3 → 2.8.4 across all affected images.
Adds constraint to dependencies/cve-constraints.txt and regenerates
lockfiles. pyasn1 0.6.3 → 0.6.4 across all affected images.
Updates starlette constraint in dependencies/cve-constraints.txt and
regenerates lockfiles. starlette 1.2.0 → 1.3.1 across all affected images.
llmcompressor 0.10.0.3 relaxes pillow upper bound from <=12.1.1 to
<13.0.0, unblocking the pillow>=12.3.0 CVE constraint for the 2
llmcompressor images. No breaking changes — same 0.10.x branch patch.

pillow 12.1.1 → 12.3.0, llmcompressor 0.10.0.1 → 0.10.0.3
@crackcodecamp
crackcodecamp force-pushed the fix/cve-batch-rhoai-3.4-round2 branch from 4fbc371 to a67b464 Compare August 11, 2026 04:29
@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown

Superseded by newer run: https://github.com/red-hat-data-services/notebooks/actions/runs/31458106510

CI status [antigravity]

Run: Build Notebooks (push) #314586351293/3 complete · 3 skipped
Last updated: 2026-08-11T04:29:56Z

No workbench image jobs ran; all matrix jobs were skipped.

@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown

Superseded by newer run: https://github.com/red-hat-data-services/notebooks/actions/runs/31458636685

CI status [antigravity]

Run: Build Notebooks (pr) #3145810651031/31 complete · 3 passed · 1 skipped · 27 cancelled
Last updated: 2026-08-11T04:30:17Z after workflow update completed

Failures so far

Job Failed step Link
runtime-minimal-ubi9-python-3.12 · linux/s390x [rhoai] / rhoai Run Testcontainers container tests (in PyTest) logs
cuda-jupyter-pytorch-llmcompressor-ubi9-python-3.12 · linux/amd64 [rhoai] / rhoai Prefetch hermetic build dependencies logs
rstudio-rhel9-python-3.12 · linux/amd64 [rhoai] / rhoai Build: make rstudio-rhel9-python-3.12 logs
jupyter-datascience-ubi9-python-3.12 · linux/ppc64le [rhoai] / rhoai Prefetch hermetic build dependencies logs
cuda-jupyter-minimal-ubi9-python-3.12 · linux/arm64 [rhoai] / rhoai Build: make cuda-jupyter-minimal-ubi9-python-3.12 logs
codeserver-ubi9-python-3.12 · linux/amd64 [rhoai] / rhoai Prefetch hermetic build dependencies logs
rocm-runtime-pytorch-ubi9-python-3.12 · linux/amd64 [rhoai] / rhoai Run Testcontainers container tests (in PyTest) logs
codeserver-ubi9-python-3.12 · linux/arm64 [rhoai] / rhoai Prefetch hermetic build dependencies logs

(+ 19 other failed matrix jobs)

Likely root causes

  • The GitHub Actions workflow run was explicitly cancelled (The operation was canceled.), leading to multiple jobs failing across different steps (including Prefetch hermetic build dependencies, Build, Provision K8s cluster, and container tests in PyTest).
  • No underlying software compilation, dependency resolution, or test failure caused the run to abort; the failure is entirely due to run cancellation.

Suggested next steps

  • Re-run the workflow to verify that the build, prefetch, cluster provisioning, and test suites complete successfully without manual cancellation.

@crackcodecamp

Copy link
Copy Markdown
Member Author

PR is up for review now.

@crackcodecamp

Copy link
Copy Markdown
Member Author

/build-konflux

@github-actions

Copy link
Copy Markdown

CI status [antigravity]

Run: Build Notebooks (pr) #3145863668531/31 complete · 28 passed · 2 failed · 1 skipped
Last updated: 2026-08-11T06:20:12Z after workflow update completed

Failures so far

Job Failed step Link
codeserver-ubi9-python-3.12 · linux/arm64 [rhoai] / rhoai Run Playwright tests logs
codeserver-ubi9-python-3.12 · linux/amd64 [rhoai] / rhoai Run Playwright tests logs

Likely root causes

  • The test suite encountered an AssertionError when attempting to install mysql-connector-python==9.7.0 because only version 9.6.0 was available in the configured package index (https://console.redhat.com/api/pypi/public-rhai/rhoai/3.4/cpu-ubi9/simple/).
  • The test container inspection failed with a JSON unmarshalling error (json: cannot unmarshal array into Go value of type define.InspectContainerData), likely causing a tooling or podman interaction failure with testcontainers (exit code 125).

Suggested next steps

  • Verify the available versions of mysql-connector-python in the RHOAI package repository and update the test constraints or requirements accordingly if version 9.7.0 is not yet published.
  • Review container inspection and testcontainer interactions under tests/containers/workbenches/jupyterlab/jupyterlab_datascience_test.py to ensure compatibility with the container runtime environment.

@openshift-ci

openshift-ci Bot commented Aug 11, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: mtchoum1
Once this PR has been reviewed and has the lgtm label, please ask for approval from jiridanek. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@mtchoum1
mtchoum1 merged commit 7b0cd0e into rhoai-3.4 Aug 11, 2026
70 of 75 checks passed
@mtchoum1
mtchoum1 deleted the fix/cve-batch-rhoai-3.4-round2 branch August 11, 2026 13:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants