chore(deps): bump pypdf from 6.14.2 to 6.16.1 in /envs/repl_env - #1117
chore(deps): bump pypdf from 6.14.2 to 6.16.1 in /envs/repl_env#1117dependabot[bot] wants to merge 1 commit into
Conversation
Bumps [pypdf](https://github.com/py-pdf/pypdf) from 6.14.2 to 6.16.1. - [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.16.1) --- updated-dependencies: - dependency-name: pypdf dependency-version: 6.16.1 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
PR #1117 — chore(deps): bump pypdf 6.14.2 → 6.16.1 in /envs/repl_env (native dependabot dependabot/uv/… branch). Lockfile-only: envs/repl_env/uv.lock (+12/−12), no source changes.
Automated Checks
- Lint: PASS (for this PR).
lint.shexits non-zero, but every flagged file is pre-existingruff formatdrift in unrelated envs (chat_env, coding_tools_env, opencode_env, pi_env, textarena_env, andrepl_env/runner.py/repl_env/server/repl_environment.py). This PR changes 0 Python files — onlyuv.lock— and CI neverruff formatsenvs/**nor lints.lock/TOML, so there is no lint impact from this change. - Debug code: CLEAN.
check-debug.shscanssrc/only; this PR touches nosrc/files. uv lock --check(envs/repl_env): PASS (121 packages) — lock is internally consistent withpyproject.toml.
Dependency-bump verification
- Hashes match PyPI: wheel
63fec31c…f371f644(382 924 B) and sdistc4d1b43d…5c972ba9(7 003 737 B) matchpypi.org/pypi/pypdf/6.16.1/jsonexactly;yanked: false. - Constraints satisfied: pypdf
requires-python >=3.9⊇ repl_env>=3.10; only runtime dep istyping_extensions; python<3.11(already locked). No new runtime deps. - Born-clean:
revision = 3unchanged (base==head), 0 HF-mirror refs / 126pypi.org/simpleon both sides, nofiles.pythonhosted.orgline changed except pypdf → no index-flip, no revision bump. - Benign resolver churn: the
pandas(2.3.3/3.0.1) andsecretstorageentries only had redundant environment markers simplified; resolved versions are unchanged anduv lock --checkpasses — not a version change. - Security-positive (strong): the currently-pinned 6.14.2 now carries 5 DoS CVEs — CVE-2026-71852 / -71870 (font-width &
/ToUnicodetext-extraction blowups, fixed 6.15.0), CVE-2026-84309 (TreeObject.insert_childinfinite loop, fixed 6.16.0), and CVE-2026-84310 (outline retrieval) + CVE-2026-84311 (XForm text extraction), fixed only in 6.16.1. All are crafted-PDF DoS, several during text extraction — exactly repl_env's untrusted uploaded-PDF path (server/gradio_ui.py:146,PdfReader → page.extract_text(), server-side, outside the smolagents sandbox). 6.16.1 has 0 known vulnerabilities.
Open RFCs Context
Open RFCs (000/001/002/003/005/008 In Review; 010 Draft; 004 unversioned) cover core abstractions, env-spec, MCP, rubrics, agentic harnesses, auto-validation, and world-modeling. None cover packaging / PyPI / dependency management, so none are implicated by a lock bump.
Tier 1: Fixes Required
- None.
Tier 2: Alignment Discussion
Principle Conflicts
None identified. pypdf is used server-side only for PDF text extraction in the Gradio web tab (outside the smolagents sandbox); it does not touch the Gym API (reset/step/state), the MCP boundary, reward computation, client-server separation, or credentials. Agent isolation is preserved.
RFC Conflicts
None identified.
Process / Repo Hygiene (non-blocking)
ALIGNMENT FLAG: Native dependabot PR modifies envs/** despite the uv updater's exclude-paths
- Policy at stake:
.github/dependabot.ymluv updater (directory: "/",exclude-paths: ["envs/**"], lines 8-9) - The concern: this is a native
dependabot/uv/envs/repl_env/…PR editingenvs/repl_env/uv.lock, whichexclude-pathsis meant to prevent. The key is valid but theuvecosystem does not appear to honor it; the intended channel for env locks is thecodex/dependabot-envs-*aggregate roll-up. Recurring (also #1013/#1073); platform limitation, not a fault of this PR. - Suggested reviewer: @burtenshaw (authored the
exclude-pathsconfig)
Minor hygiene note (non-blocking): unlike #1013/#1073, this is a lockfile-only version update — the pyproject.toml floor stays pypdf>=6.14.2, which still permits the now-known-vulnerable 6.14.2/6.15.x on a fresh (non---frozen) resolve. The committed lock and the Dockerfile's uv sync --frozen both pin 6.16.1, so real deploy risk is low, but consider raising the floor to pypdf>=6.16.1 to match the security intent (as prior pypdf PRs did). Team decision — flagging, not editing dependabot's PR.
Summary
- 0 mechanical issues to fix
- 1 process point for human review (exclude-paths bypass; + a minor floor-hygiene suggestion)
- 0 RFC conflicts
Net: a clean, born-clean, security-positive lockfile bump that directly hardens repl_env's untrusted PDF-upload path. No blocking issues.
Sent by Cursor Automation: Pre-review
| [[package]] | ||
| name = "pypdf" | ||
| version = "6.14.2" | ||
| version = "6.16.1" |
There was a problem hiding this comment.
pypdf 6.16.1 verified against PyPI: wheel 63fec31c…f371f644 (382 924 B) + sdist c4d1b43d…5c972ba9 (7 003 737 B) match exactly, yanked: false, requires-python >=3.9 (repl_env >=3.10 ✓), no new runtime deps.
Born-clean: revision = 3 and all-pypi.org/simple refs unchanged base↔head (no index-flip / no revision bump). uv lock --check passes (121 pkgs).
Security-positive: clears 5 DoS CVEs present in 6.14.2 — CVE-2026-84310 (outline retrieval) and CVE-2026-84311 (XForm text extraction) are fixed only in 6.16.1 — all on repl_env's extract_text() uploaded-PDF path.


Bumps pypdf from 6.14.2 to 6.16.1.
Release notes
Sourced from pypdf's releases.
... (truncated)
Changelog
Sourced from pypdf's changelog.
... (truncated)
Commits
1bce7a7REL: 6.16.1d91ab70SEC: Limit iterations for outline retrieval and XForm text extraction (#3966)2b60c99REL: 6.16.0c9ba557SEC: Detect cycles in TreeObject.insert_child (#3964)c8e1c72BUG: Always define PdfWriter._reader (#3960)3a0f355ROB: Detect cyclic pages in _get_page_in_node (#3962)20512f4ROB: AppearanceStream: Only escape parentheses for 8-bit fonts (#3961)34ccd14MAINT: Deduplicate CatalogAttributes and CatalogDictionary (#3940)5b8f19eENH: AppearanceStream: Allow arbitrary rotations and apply rotations for anno...53bfbc6PI: Build /ToUnicode source-code bytes directly in parse_bfrange (#3952)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
Lockfile-only dependency bump on the PDF upload parsing path; main effect is upstream security fixes with typical minor regression risk for edge-case PDFs.
Overview
Updates
envs/repl_env/uv.lockto pinpypdf6.16.1 (from 6.14.2), matching the existingpypdf>=6.14.2constraint inpyproject.toml. That library is used in the Gradio server to extract text from user-uploaded PDFs before code runs in the REPL sandbox.The new release line adds security hardening (iteration limits, cycle detection, font/token bounds) and assorted parsing/merge fixes; there are no application code changes in this PR. The lockfile also refreshes dependency markers on
pandasandsecretstorageentries—resolver noise, not separate version bumps in this diff.Reviewed by Cursor Bugbot for commit e082af9. Bugbot is set up for automated code reviews on this repo. Configure here.