chore(deps): bump pypdf from 6.14.2 to 6.15.0 in /envs/repl_env - #1073
chore(deps): bump pypdf from 6.14.2 to 6.15.0 in /envs/repl_env#1073dependabot[bot] wants to merge 1 commit into
Conversation
Bumps [pypdf](https://github.com/py-pdf/pypdf) from 6.14.2 to 6.15.0. - [Release notes](https://github.com/py-pdf/pypdf/releases) - [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md) - [Commits](py-pdf/pypdf@6.14.2...6.15.0) --- updated-dependencies: - dependency-name: pypdf dependency-version: 6.15.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
|
The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update. |
There was a problem hiding this comment.
Alignment Review Report
Scope: this PR is a Dependabot minor version bump of pypdf (6.14.2 → 6.15.0) in envs/repl_env. It touches only envs/repl_env/pyproject.toml and envs/repl_env/uv.lock — no Python source, no README, nothing under src/.
Automated Checks
- Lint: PASS (for this PR's scope). The repo-wide
.claude/hooks/lint.shhook reports pre-existing formatting drift in ~25 unrelatedenvs/*files (and Python code blocks inside their READMEs). None of those files are modified by this PR, and this PR changes zero.pyfiles, so no lint issue is attributable to this change. (Note:uvwas not preinstalled in the review environment and had to be installed to run the hook.) - Debug code: CLEAN (for this PR's scope).
.claude/hooks/check-debug.shonly scanssrc/; every print/TODO it flags is pre-existing and untouched here, since this PR changes nothing undersrc/.
Open RFCs Context
Open/active RFCs: 000, 001, 002 (all In Review; 002 has a pending amendment), 003 (In Review), 005 (In Review), 010 (Draft). None relate to third-party dependency management or the repl_env Gradio document-upload feature, so none are relevant to this change.
Tier 1: Fixes Required
- None.
pyproject.toml(pypdf>=6.15.0) anduv.lock(pypdf 6.15.0, with matching sdist + wheel hashes) are internally consistent. The extrauv.lockchurn (marker normalization forpandas2.3.3/3.0.1 andsecretstorage) is a benignuv lockre-resolution artifact, not a functional change.
Tier 2: Alignment Discussion
Principle Conflicts
None identified. pypdf is an optional, server-side-only dependency (guarded by try/except ImportError in envs/repl_env/server/gradio_ui.py) used solely by the Gradio debug UI's document-upload path — outside the smolagents sandbox and outside both API boundaries. No principle (lifecycle deltas, human/agent parity, hands-on, design-for-LLMs) is affected.
RFC Conflicts
None identified. The change does not touch any area under discussion in the open RFCs.
Summary
- 0 mechanical issues to fix
- 0 alignment points for human review
- 0 RFC conflicts to discuss
Verdict: Low-risk, self-contained dependency bump. The only usage is the stable PdfReader / .pages / .extract_text() API (gradio_ui.py), which is unchanged across this minor release, so breakage risk is minimal. Safe to merge once CI is green.
Sent by Cursor Automation: Pre-review
There was a problem hiding this comment.
Alignment Review Report
Third pypdf-in-repl_env bump (after #1013 6.13.3→6.14.2 and the #1015 aggregate). This is a native Dependabot minor bump 6.14.2 → 6.15.0 touching only envs/repl_env/pyproject.toml (direct-dep floor) and envs/repl_env/uv.lock (requires-dist + the [[package]] pypdf version/sdist/wheel). No Python source, no src/, no README.
Automated Checks
- Lint: PASS (for this PR's scope).
.claude/hooks/lint.shflags ~25 pre-existing formatting-drift files underenvs/*(and Python code fences inside their READMEs), but this PR changes zero.pyfiles — only.toml/.lock, which the pipeline never lints — so nothing is attributable to this change. (uvisn't preinstalled on the review VM; installed on demand to run the checks.) - Debug code: CLEAN (for this PR's scope).
check-debug.shscans onlysrc/; every hit is pre-existing and untouched here. uv lock --check --project envs/repl_env: PASS (121 packages) — the lock is internally consistent with the bumped floor.
Open RFCs Context
Active RFCs: 000/001/002/003/005 (In Review; 002 has a pending Cloud-Sandbox amendment), 010 (Draft), plus 004 (rubrics, no status header) and 008 (auto-validation, In Review). None relate to packaging / dependency management / PyPI, so none are relevant to this change.
Tier 1: Fixes Required
None. Verified:
- Hashes are real & match PyPI exactly,
yanked=false: wheelsha256:14e001d6…(378123 B), sdistsha256:d39c4d95…(6993794 B). - Constraints satisfied: pypdf
requires-python >=3.9⊇ repl_env>=3.10; its only runtime dep istyping_extensions>=4.0; python<3.11(already locked); no new transitive deps. - Lock is born-clean:
revision = 3unchanged, 0 HF-mirror refs (126pypi.org/simpleat both base and head), and onlypypdf'sfiles.pythonhosted.orglines changed — so no index-source-flip and no revision-bump side effects. - The extra
pandas/secretstorageenvironment-marker simplifications in the lock are a benignuvmarker-normalization artifact (resolved versions unchanged;uv lock --checkpasses).
Tier 2: Alignment Discussion
Security (positive — reason to merge)
This is effectively a security upgrade. pypdf 6.14.2 (currently on main) is affected by two newly-disclosed DoS advisories, both fixed in exactly 6.15.0:
- CVE-2026-71852 (GHSA-fwg2-594c-jp42): a crafted PDF with oversized font-width entries → excessive runtime + memory during text extraction.
- CVE-2026-71870 (GHSA-fp3f-mc75-235c): a crafted PDF with oversized
/ToUnicodevalues → excessive memory during text extraction.
repl_env runs PdfReader(...).pages[*].extract_text() on user-uploaded PDFs (envs/repl_env/server/gradio_ui.py:146) — exactly the code path these CVEs target — so the upgrade is well-motivated.
Principle Conflicts
None identified. pypdf is an optional (guarded try/except ImportError), server-side-only dependency used solely by the Gradio debug UI's document-upload path — outside the smolagents sandbox and outside both API boundaries.
RFC Conflicts
None identified. No RFC covers packaging / dependency management / PyPI.
Process note (recurring, non-blocking)
ALIGNMENT FLAG: Native Dependabot env-lock PR bypasses exclude-paths
- Policy at stake:
.github/dependabot.yml'suvupdater is configureddirectory: "/"withexclude-paths: ["envs/**"]. - The concern: this native
dependabot/uv/envs/repl_env/…PR still editsenvs/repl_env/**, i.e. theexclude-pathsfilter isn't honored by theuvecosystem (known platform limitation). The intended aggregation path is thecodex/dependabot-envs-*roll-ups. Recurs on every native env-lock PR; harmless for this change, but worth reconciling config vs. actual behavior. - Suggested reviewer: @burtenshaw (dependabot.yml author)
Summary
- 0 mechanical issues to fix
- 1 alignment point for human review (recurring
exclude-pathsprocess mismatch; non-blocking) - 0 RFC conflicts
Verdict: Clean, born-clean, security-positive direct-dependency bump. Safe to merge once CI is green.
Sent by Cursor Automation: Pre-review
| "gradio>=4.0.0", | ||
| # Document upload support in the Gradio tab (server-side only, not in the sandbox) | ||
| "pypdf>=6.14.2", | ||
| "pypdf>=6.15.0", |
There was a problem hiding this comment.
Direct-dep floor bump. 6.15.0 is a security fix: it patches CVE-2026-71852 and CVE-2026-71870 — both DoS-during-text-extraction issues from crafted PDFs that affect 6.14.2. This is directly relevant because repl_env calls extract_text() on user-uploaded PDFs in server/gradio_ui.py. Constraint-wise, pypdf requires-python >=3.9 is satisfied by repl_env's >=3.10, and its only runtime dep (typing_extensions) is already locked.
| [[package]] | ||
| name = "pypdf" | ||
| version = "6.14.2" | ||
| version = "6.15.0" |
There was a problem hiding this comment.
Hashes verified against PyPI: wheel 14e001d6… (378123 B) and sdist d39c4d95… (6993794 B), yanked=false. The lock is born-clean (revision = 3 unchanged, 0 HF-mirror refs — all pypi.org/simple), so there's no index-flip or revision-bump side effect, and uv lock --check --project envs/repl_env passes (121 packages). The unrelated pandas/secretstorage marker simplifications elsewhere in this file are benign uv normalization.


Bumps pypdf from 6.14.2 to 6.15.0.
Release notes
Sourced from pypdf's releases.
Changelog
Sourced from pypdf's changelog.
Commits
7f226a2REL: 6.15.04959848SEC: Improve performance of read_until_whitespace (#3947)51cb6acSEC: Limit CID width range and width count when loading fonts (#3946)afba808SEC: Limit token length for ToUnicode entries (#3944)aa2f37dDOC: Image and attachment filenames are unsanitized (#3942)760ba28DOC: Further clarify security policy55bd85cBUG: Expand low-bit samples for images without a filter (#3938)4807cb4ROB: Tolerate malformed /FontBBox when building font descriptors (#3895)ce9320bDEV: Bump pypa/gh-action-pypi-publish from 1.14.1 to 1.14.2 (#3941)8b6f6fdENH: Add ActualText tag when we produce RTL appearance stream (#3901)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)You can disable automated security fix PRs for this repo from the Security Alerts page.
Note
Low Risk
Dependency-only patch/minor bump on server-side PDF parsing; security fixes reduce risk versus staying on 6.14.2, with no direct code changes.
Overview
Raises the
pypdffloor inenvs/repl_envfrom 6.14.2 to 6.15.0 inpyproject.tomland refreshesuv.lockso the REPL Gradio tab’s server-side PDF upload path (_extract_text_from_upload/PdfReader) resolves to the newer release.6.15.0 brings security hardening (limits on font/CID/ToUnicode parsing and
read_until_whitespaceperformance), plus minor bug fixes and deprecations; no application code changes beyond the dependency pins. Lockfile edits for pandas / secretstorage dependency markers are incidental resolver output, not functional changes in this repo.Reviewed by Cursor Bugbot for commit 6da100f. Bugbot is set up for automated code reviews on this repo. Configure here.