Skip to content

fix(deps): bump pillow, pypdf, pymdown-extensions, setuptools to clear 19 trivy-fs findings - #517

Closed
seonghobae wants to merge 2 commits into
claude/contextualwisdomlab-audit-governance-qyxe67from
fix/trivy-fs-uv-lock-cves
Closed

fix(deps): bump pillow, pypdf, pymdown-extensions, setuptools to clear 19 trivy-fs findings#517
seonghobae wants to merge 2 commits into
claude/contextualwisdomlab-audit-governance-qyxe67from
fix/trivy-fs-uv-lock-cves

Conversation

@seonghobae

Copy link
Copy Markdown
Collaborator

The org trivy-fs gate fails every open PR on this repo with 19 pre-existing findings in uv.lock (see the failed run on #515):

Package Locked Patched CVEs
pillow 12.2.0 12.3.0 CVE-2026-54058 (8.0), CVE-2026-54059, CVE-2026-54060, CVE-2026-55379, CVE-2026-55380, CVE-2026-59197 (8.2), CVE-2026-59199, CVE-2026-59200, CVE-2026-59204 (8.0), CVE-2026-59205, CVE-2026-55798, CVE-2026-59198, CVE-2026-59203
pypdf 6.13.3 6.14.2 CVE-2026-59935 (8.0), CVE-2026-59936 (8.0), CVE-2026-59937, CVE-2026-59938
pymdown-extensions 10.21.3 11.0.1 CVE-2026-61632
setuptools 81.0.0 83.0.0 CVE-2026-59890

Patched versions confirmed against GitHub advisories (gh api /advisories?cve_id=…); every finding's fix version is met or exceeded.

Changes:

  • pyproject.toml: floor bumps for the direct deps — Pillow>=12.3, pypdf>=6.14.2 — and mkdocs-material>=9.7,<9.8 (9.6.x pins pymdown-extensions~=10.2, which capped it below the patched 11.x; 9.7 relaxes that to >=10.2).
  • uv.lock: regenerated with uv lock --upgrade-package for exactly these five packages — no other packages moved.

pymdown-extensions and setuptools are transitive-only (via mkdocs-material and pyinstaller), so no pyproject pin exists for them; the lock upgrade covers them.

Same pattern as ContextualWisdomLab/semantic-data-portal#45. Remediates at the shared base branch so all open PRs inherit the fix.

🤖 Generated with Claude Code

…1, setuptools 83.0.0

Clears all 19 trivy-fs findings in uv.lock:
- pillow 12.2.0 -> 12.3.0 (13 CVEs incl. CVE-2026-54058, CVE-2026-59197)
- pypdf 6.13.3 -> 6.14.2 (CVE-2026-59935..59938)
- pymdown-extensions 10.21.3 -> 11.0.1 (CVE-2026-61632)
- setuptools 81.0.0 -> 83.0.0 (CVE-2026-59890)
- mkdocs-material 9.6.23 -> 9.7.7 (drops the pymdown-extensions~=10.2 cap)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@seonghobae, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 31 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 5f52b209-125d-4e9f-821e-b0d1fffd1716

📥 Commits

Reviewing files that changed from the base of the PR and between 04491c0 and 07d3390.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • CONTRIBUTING.md
  • pyproject.toml
  • tests/test_project_metadata.py

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

The <9.7 hold blocked pymdown-extensions 11 (needed for
CVE-2026-61632). Validated per the CONTRIBUTING exit clause:
'uv run mkdocs build --strict' passes on material 9.7.7 with
mkdocs still 1.6.1. Guard tests and CONTRIBUTING now document
the validated >=9.7,<9.8 line; the mkdocs<2.0 hold stays.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Copy link
Copy Markdown
Collaborator Author

Closing as superseded by #467. The canonical security PR now covers this full dependency set, additionally fixes the affected Click line, raises the direct Pillow and pypdf floors so later lock regeneration cannot reintroduce vulnerable versions, adds explicit floor/lock regression contracts, and retains the CHANGELOG and documented MkDocs compatibility decision. Keeping both branches open would duplicate checks and independent-review work against the same develop baseline.

Copy link
Copy Markdown
Collaborator Author

Superseded by #467. The useful direct dependency-floor protections from this stacked PR have been folded into #467: Pillow>=12.3,<13.0, pypdf>=6.14.2,<7.0, and the build-system floor setuptools>=83, with a dedicated regression test and CHANGELOG update. Keeping this stacked PR open would duplicate the same lock and metadata changes and consume redundant review/check capacity.

@seonghobae seonghobae closed this Aug 4, 2026
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.

1 participant