Skip to content

fix(deps): require pdfminer-six >=20251107 for VULN-92490 - #153

Open
shuningc wants to merge 1 commit into
mainfrom
VULN-92490-pdfminer-six-upgrade
Open

fix(deps): require pdfminer-six >=20251107 for VULN-92490#153
shuningc wants to merge 1 commit into
mainfrom
VULN-92490-pdfminer-six-upgrade

Conversation

@shuningc

Copy link
Copy Markdown
Contributor

Summary

Fixes VULN-92490 by upgrading pdfminer-six to >=20251107.

Prior to 20251107, CMapDB._load_data() in pdfminer.six uses pickle.loads() to deserialize CMap pickle files. A malicious PDF can specify an alternative directory and filename ending in .pickle.gz, causing arbitrary code execution when the PDF is processed.

Changes

  • Add pdfminer-six = ">=20251107" direct dependency floor in pyproject.toml (matches idna/filelock/requests vuln-fix pattern)
  • Regenerate poetry.lock (resolves 20260107, up from transitive 20250506)
  • Transitive pdfplumber also bumps to 0.11.10 via lock resolution
  • No example requirements.txt pins needed (pdfminer.six not pinned in examples)

Vulnerability

  • Ticket: VULN-92490
  • Package: pdfminer.six
  • Fixed in: 20251107

Test plan

  • poetry lock validates
  • CI passes
  • CrewAI optional extra still resolves correctly (pdfminer.six is a transitive dep via pdfplumber)

@shuningc
shuningc marked this pull request as ready for review July 27, 2026 21:39

@fercor-cisco fercor-cisco left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🤖 This review was generated by the Astra agent (claude-opus-4-8). It may contain mistakes.

Verdict: needs_discussion — The fix correctly raises pdfminer.six to a safe version, but converts it (and cryptography) from optional to mandatory for all installs, which needs a design decision.

Comment thread pyproject.toml Outdated

@fercor-cisco fercor-cisco left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

this dependency should not be mandatory

@shuningc
shuningc force-pushed the VULN-92490-pdfminer-six-upgrade branch from 8fa3960 to a2f5645 Compare July 30, 2026 18:21
Add a direct pdfminer-six floor in pyproject.toml and regenerate
poetry.lock so transitive usage resolves to 20260107 (fixed release).
Fixes unsafe pickle.loads() in CMapDB._load_data() via malicious PDF
CMap paths.

Co-authored-by: Cursor <cursoragent@cursor.com>
@shuningc
shuningc force-pushed the VULN-92490-pdfminer-six-upgrade branch from a2f5645 to bda20c4 Compare July 30, 2026 18:40
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.

2 participants