Skip to content

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

Merged
cursor[bot] merged 3 commits into
mainfrom
dependabot/uv/envs/repl_env/pypdf-6.19.0
Oct 5, 2026
Merged

cursor[bot] merged 3 commits into
mainfrom
dependabot/uv/envs/repl_env/pypdf-6.19.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Bumps pypdf from 6.16.1 to 6.19.0.

Release notes

Sourced from pypdf's releases.

Version 6.19.0, 2026-09-16

What's new

Security (SEC)

Deprecations (DEP)

Performance Improvements (PI)

Bug Fixes (BUG)

Full Changelog

Version 6.18.1, 2026-09-11

What's new

Security (SEC)

Bug Fixes (BUG)

Robustness (ROB)

Documentation (DOC)

Full Changelog

Version 6.18.0, 2026-09-07

What's new

Please note that this release requires users which previously overwrote the default limits to migrate to the new approach: Docs

In short:

  • Use apply_configuration as a context manager to temporarily overwrite configuration values.

... (truncated)

Changelog

Sourced from pypdf's changelog.

Version 6.19.0, 2026-09-16

Security (SEC)

  • Limit size of alphabetical page labels (#4096)

Deprecations (DEP)

  • Replace PdfWriter method add_js (#3979)

Performance Improvements (PI)

  • Move static value out of loop body for appearance stream data (#4087)
  • Reduce number of full data lookups for attachment mapping API (#4081)

Bug Fixes (BUG)

  • Do not copy unrelated pages when appending pages with non-terminal fields (#4078)
  • Use page reference for existing internal link targets (#4076)
  • Arabic-Indic digits are reversed during text extraction (#4077)
  • Parse a string rect for add_uri into a rectangle (#4074)

Full Changelog

Version 6.18.1, 2026-09-11

Security (SEC)

  • Further restrict FlateDecode recovery (#4073)
  • Limit entry count for TrueType and Type1 font /Widths (#4072)
  • Limit allowed length of tokens in parse_bfchar (#4071)

Bug Fixes (BUG)

  • Use current text matrix for visitor_text (#4062)
  • Repeat the letter for /S /A and /S /a page labels past Z (#4065)
  • Use font color for FreeText default appearance (#4051)

Robustness (ROB)

  • Fix compatibility with fonttools < 4.58.0 (#4050, #4059)

Documentation (DOC)

  • Use combined matrix in visitor examples (#4066)

Full Changelog

Version 6.18.0, 2026-09-07

Security (SEC)

  • Limit allowed length of indirect object tokens (#4055)

Deprecations (DEP)

  • Rework configuration value handling (#4044)

New Features (ENH)

  • Draw borders and backgrounds for appearance streams and annotations (#4033)

... (truncated)

Commits
  • d62cb58 REL: 6.19.0
  • 0d8b5a8 SEC: Limit size of alphabetical page labels (#4096)
  • 959467a PI: Move static value out of loop body for appearance stream data (#4087)
  • 20822b2 DEV: Bump zizmorcore/zizmor-action from 0.6.3 to 0.6.4 (#4093)
  • 25f2301 DEP: Replace PdfWriter method add_js (#3979)
  • a924438 BUG: Do not copy unrelated pages when appending pages with non-terminal field...
  • cf5cec2 BUG: Use page reference for existing internal link targets (#4076)
  • 96d81f0 BUG: Arabic-Indic digits are reversed during text extraction (#4077)
  • 2d21901 DEV: Fix Color class for latest mypy (#4082)
  • 893a010 MAINT: Split PdfDocCommon._flatten (#4070)
  • 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; improves PDF parser safety for user uploads with no direct code changes, though behavior of malformed PDFs may differ slightly.

Overview
Updates the envs/repl_env/uv.lock pin for pypdf from 6.16.1 to 6.19.0 (still within the existing pypdf>=6.16.1 constraint in pyproject.toml). No application code changes.

This refresh pulls in upstream security hardening and bug fixes for PDF parsing—relevant because the REPL Gradio tab uses pypdf.PdfReader server-side on uploaded documents. Notable upstream changes include limits on alphabetical page labels and stricter parsing bounds (e.g. FlateDecode, font /Widths), plus fixes for text extraction and page/link handling.

Reviewed by Cursor Bugbot for commit 80d3fa2. Bugbot is set up for automated code reviews on this repo. Configure here.

Bumps [pypdf](https://github.com/py-pdf/pypdf) from 6.16.1 to 6.19.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.16.1...6.19.0)

---
updated-dependencies:
- dependency-name: pypdf
  dependency-version: 6.19.0
  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 Oct 1, 2026
@burtenshaw burtenshaw added environment size: small Small pull request labels Oct 1, 2026 — with Cursor
@bot-ci-comment

bot-ci-comment Bot commented Oct 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
Contributor

Choose a reason for hiding this comment

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

Alignment Review Report

Automated Checks

  • Lint: N/A for this diff — only envs/repl_env/uv.lock changed, and TOML/lockfiles aren't linted by ruff/usort. (lint.sh does exit non-zero, but only due to ~55 pre-existing reformat candidates elsewhere in envs/**/src/** unrelated to this PR; envs/repl_env/runner.py has one pre-existing unused-import nit, also unrelated to this diff.)
  • Debug code: CLEAN — check-debug.sh only scans src/, which this PR doesn't touch.

Open RFCs Context

Scanned all RFCs in rfcs/ (000, 001, 002, 003, 004, 005, 006, 008, 010, 011, 012 — several In Review/Draft). None cover packaging, dependency management, or the PyPI index, so there's no RFC-governed surface this change touches.

Tier 1: Fixes Required

None. This is a clean, lockfile-only dependency bump:

  • pypdf is a direct dependency of envs/repl_env (used server-side only, in the Gradio /web tab, to parse user-uploaded PDFs via PdfReader(...).pages[i].extract_text() — see envs/repl_env/server/gradio_ui.py:146).
  • envs/repl_env/pyproject.toml floor (pypdf>=6.16.1) already permits 6.19.0, so dependabot updated the lock only (version/sdist-hash/wheel-hash of pypdf), leaving the floor unchanged. uv lock --check --project envs/repl_env passes (121 packages resolved).
  • Lock was already "born-clean" at base (revision = 3, 0 registries.huggingface.tech refs, all pypi.org/simple) and stays clean — no index-flip or revision-bump side effects. Diffing files.pythonhosted.org lines confirms only the pypdf artifact URLs/hashes changed; I independently verified both hashes against pypi.org/pypi/pypdf/<version>/json and they match exactly.
  • Security-positive: pypdf 6.16.1 currently carries 8 distinct DoS CVEs (CVE-2026-102993…103000 — memory/CPU-exhaustion issues in page-label, /ToUnicode, indirect-object, appearance-stream, font, FlateDecode, and embedded-file parsing), all fixed across 6.17.0–6.19.0. 6.19.0 has 0 known vulnerabilities on PyPI. Since this code path parses untrusted user-uploaded PDFs, this is a meaningful hardening update.

Tier 2: Alignment Discussion

Principle Conflicts

None identified. No reward computation, client-server boundary, or MCP surface is touched.

RFC Conflicts

None identified. No open RFC covers dependency/packaging management.

Process note (recurring, non-blocking)

ALIGNMENT FLAG: Native dependabot PR bypasses dependabot.yml exclude-paths

  • Principle/RFC at stake: N/A (process/tooling, not a design principle) — .github/dependabot.yml's uv ecosystem entry sets exclude-paths: ["envs/**"], intending env-level uv bumps to flow through the aggregated codex/dependabot-envs-* roll-up PRs instead.
  • The concern: This PR is a native dependabot/uv/envs/repl_env/pypdf-6.19.0 branch that edits envs/repl_env/uv.lock directly, which the exclude-paths config was meant to prevent. This appears to be a long-standing platform limitation where the uv package ecosystem doesn't honor exclude-paths the way other ecosystems do (observed repeatedly on prior envs/repl_env pypdf bumps). Not a correctness issue with this specific bump — just a recurring config/process mismatch worth revisiting.
  • Suggested reviewer: @burtenshaw (author of the dependabot.yml exclude-paths config)

Also non-blocking: the pypdf>=6.16.1 floor in pyproject.toml still technically permits resolving the now-fully-vulnerable 6.16.1 on a non-frozen install; the committed lock + --frozen deploy keep actual risk low, but raising the floor to >=6.19.0 would make the security intent explicit (same note made on the prior 6.14.2→6.16.1 bump).

Summary

  • 0 mechanical issues to fix
  • 0 alignment points for human review (no principle conflicts)
  • 0 RFC conflicts to discuss
  • 1 non-blocking process note (recurring exclude-paths bypass, cc @burtenshaw) + 1 non-blocking suggestion (raise pyproject floor to match the security fix)
Open in Web View Automation 

Sent by Cursor Automation: Pre-review

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Verified: pypdf 6.16.1 → 6.19.0. Both sdist/wheel hashes match pypi.org/pypi/pypdf/<version>/json exactly. 6.16.1 has 8 known DoS CVEs (CVE-2026-102993…103000, all in PDF-parsing code paths); 6.19.0 has 0. Security-positive given pypdf here parses untrusted user-uploaded PDFs server-side (envs/repl_env/server/gradio_ui.py:146). Lock is lockfile-only (pyproject floor >=6.16.1 already permitted this version) and stays "born-clean" (revision 3, all pypi.org/simple) — uv lock --check passes.

cursoragent and others added 2 commits October 5, 2026 06:14
Co-authored-by: benjamin.burtenshaw <benjamin.burtenshaw@huggingface.co>
Co-authored-by: benjamin.burtenshaw <benjamin.burtenshaw@huggingface.co>
@cursor
cursor Bot merged commit 8588f1e into main Oct 5, 2026
14 checks passed
@dependabot
dependabot Bot deleted the dependabot/uv/envs/repl_env/pypdf-6.19.0 branch October 5, 2026 06:22
@cursor cursor Bot mentioned this pull request Oct 5, 2026
5 of 21 tasks
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.

2 participants