Skip to content

chore(deps): bump pypdf from 6.14.2 to 6.16.1 in /envs/repl_env - #1117

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/uv/envs/repl_env/pypdf-6.16.1
Open

chore(deps): bump pypdf from 6.14.2 to 6.16.1 in /envs/repl_env#1117
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/uv/envs/repl_env/pypdf-6.16.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 1, 2026

Copy link
Copy Markdown
Contributor

Bumps pypdf from 6.14.2 to 6.16.1.

Release notes

Sourced from pypdf's releases.

Version 6.16.1, 2026-08-14

What's new

Security (SEC)

Full Changelog

Version 6.16.0, 2026-08-13

What's new

Security (SEC)

New Features (ENH)

  • AppearanceStream: Allow arbitrary rotations and apply rotations for annotation appearance streams (#3917) by @​PJBrs
  • AppearanceStream: Consider more encodings for Type1 core fonts (#3905) by @​PJBrs

Performance Improvements (PI)

  • Build /ToUnicode source-code bytes directly in parse_bfrange (#3952) by @​Anai-Guo

Bug Fixes (BUG)

Robustness (ROB)

  • AppearanceStream: Only escape parentheses for 8-bit fonts (#3961) by @​PJBrs
  • Recover the trailer from a cross-reference stream when rebuilding the xref (#3950) by @​Anai-Guo

Maintenance (MAINT)

  • Deduplicate CatalogAttributes and CatalogDictionary (#3940) by @​j-t-1

Code Style (STY)

Full Changelog

Version 6.15.0, 2026-08-06

What's new

Security (SEC)

Deprecations (DEP)

... (truncated)

Changelog

Sourced from pypdf's changelog.

Version 6.16.1, 2026-08-14

Security (SEC)

  • Limit iterations for outline retrieval and XForm text extraction (#3966)

Full Changelog

Version 6.16.0, 2026-08-13

Security (SEC)

  • Detect cycles in TreeObject.insert_child (#3964)

New Features (ENH)

  • AppearanceStream: Allow arbitrary rotations and apply rotations for annotation appearance streams (#3917)
  • AppearanceStream: Consider more encodings for Type1 core fonts (#3905)

Performance Improvements (PI)

  • Build /ToUnicode source-code bytes directly in parse_bfrange (#3952)

Bug Fixes (BUG)

  • Preserve internal Link annotations when appending/merging (#3953) (#3954)
  • Fix false inline image end markers (#3922)
  • Reject typeless non-page /Kids entries in strict mode (#3955)
  • Apply character spacing (Tc) per glyph in layout-mode extraction (#3951)
  • Keep the Adobe CMYK inversion when an explicit /Decode is present (#3943)

Robustness (ROB)

  • AppearanceStream: Only escape parentheses for 8-bit fonts (#3961)
  • Recover the trailer from a cross-reference stream when rebuilding the xref (#3950)

Maintenance (MAINT)

  • Deduplicate CatalogAttributes and CatalogDictionary (#3940)

Code Style (STY)

  • Type pages as a Sequence rather than a list (#3957)

Full Changelog

Version 6.15.0, 2026-08-06

Security (SEC)

  • Improve performance of read_until_whitespace (#3947)
  • Limit CID width range and width count when loading fonts (#3946)
  • Limit token length for ToUnicode entries (#3944)

Deprecations (DEP)

  • Deprecate previously missed inline_images setter as well (#3897)

New Features (ENH)

  • Add ActualText tag when we produce RTL appearance stream (#3901)

... (truncated)

Commits
  • 1bce7a7 REL: 6.16.1
  • d91ab70 SEC: Limit iterations for outline retrieval and XForm text extraction (#3966)
  • 2b60c99 REL: 6.16.0
  • c9ba557 SEC: Detect cycles in TreeObject.insert_child (#3964)
  • c8e1c72 BUG: Always define PdfWriter._reader (#3960)
  • 3a0f355 ROB: Detect cyclic pages in _get_page_in_node (#3962)
  • 20512f4 ROB: AppearanceStream: Only escape parentheses for 8-bit fonts (#3961)
  • 34ccd14 MAINT: Deduplicate CatalogAttributes and CatalogDictionary (#3940)
  • 5b8f19e ENH: AppearanceStream: Allow arbitrary rotations and apply rotations for anno...
  • 53bfbc6 PI: Build /ToUnicode source-code bytes directly in parse_bfrange (#3952)
  • Additional commits viewable in compare view

Dependabot compatibility score

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 rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will 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 version will 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 dependency will 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.lock to pin pypdf 6.16.1 (from 6.14.2), matching the existing pypdf>=6.14.2 constraint in pyproject.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 pandas and secretstorage entries—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.

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>
@dependabot dependabot Bot added Dependencies python:uv Pull requests that update python:uv code labels Sep 1, 2026
@burtenshaw burtenshaw added environment size: small Small pull request labels Sep 1, 2026 — with Cursor
@bot-ci-comment

bot-ci-comment Bot commented Sep 1, 2026

Copy link
Copy Markdown

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.

@cursor cursor 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.

Alignment Review Report

PR #1117chore(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.sh exits non-zero, but every flagged file is pre-existing ruff format drift in unrelated envs (chat_env, coding_tools_env, opencode_env, pi_env, textarena_env, and repl_env/runner.py / repl_env/server/repl_environment.py). This PR changes 0 Python files — only uv.lock — and CI never ruff formats envs/** nor lints .lock/TOML, so there is no lint impact from this change.
  • Debug code: CLEAN. check-debug.sh scans src/ only; this PR touches no src/ files.
  • uv lock --check (envs/repl_env): PASS (121 packages) — lock is internally consistent with pyproject.toml.

Dependency-bump verification

  • Hashes match PyPI: wheel 63fec31c…f371f644 (382 924 B) and sdist c4d1b43d…5c972ba9 (7 003 737 B) match pypi.org/pypi/pypdf/6.16.1/json exactly; yanked: false.
  • Constraints satisfied: pypdf requires-python >=3.9 ⊇ repl_env >=3.10; only runtime dep is typing_extensions; python<3.11 (already locked). No new runtime deps.
  • Born-clean: revision = 3 unchanged (base==head), 0 HF-mirror refs / 126 pypi.org/simple on both sides, no files.pythonhosted.org line changed except pypdf → no index-flip, no revision bump.
  • Benign resolver churn: the pandas (2.3.3/3.0.1) and secretstorage entries only had redundant environment markers simplified; resolved versions are unchanged and uv lock --check passes — not a version change.
  • Security-positive (strong): the currently-pinned 6.14.2 now carries 5 DoS CVEsCVE-2026-71852 / -71870 (font-width & /ToUnicode text-extraction blowups, fixed 6.15.0), CVE-2026-84309 (TreeObject.insert_child infinite 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.yml uv updater (directory: "/", exclude-paths: ["envs/**"], lines 8-9)
  • The concern: this is a native dependabot/uv/envs/repl_env/… PR editing envs/repl_env/uv.lock, which exclude-paths is meant to prevent. The key is valid but the uv ecosystem does not appear to honor it; the intended channel for env locks is the codex/dependabot-envs-* aggregate roll-up. Recurring (also #1013/#1073); platform limitation, not a fault of this PR.
  • Suggested reviewer: @burtenshaw (authored the exclude-paths config)

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.

Open in Web View Automation 

Sent by Cursor Automation: Pre-review

Comment thread envs/repl_env/uv.lock
[[package]]
name = "pypdf"
version = "6.14.2"
version = "6.16.1"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Dependencies environment python:uv Pull requests that update python:uv code size: small Small pull request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant