Skip to content

SEC: Disallow custom XML entity declarations for XMP metadata#3724

Merged
stefan6419846 merged 1 commit intopy-pdf:mainfrom
stefan6419846:xmp-parseString
Apr 10, 2026
Merged

SEC: Disallow custom XML entity declarations for XMP metadata#3724
stefan6419846 merged 1 commit intopy-pdf:mainfrom
stefan6419846:xmp-parseString

Conversation

@stefan6419846
Copy link
Copy Markdown
Collaborator

While libexpat already handled the more severe cases, it has still been possible to cause rather high memory usage. For this reason, disallow entity declarations completely.

I decided against defusedxml for now, as I do not see the benefit of including an untyped external package for something this small, especially considering that the public maintenance status does not look very promising.

While *libexpat* already handled the more severe cases, it has still
been possible to cause rather high memory usage. For this reason,
disallow entity declarations completely.

I decided against *defusedxml* for now, as I do not see the benefit of
including an untyped external package for something this small,
especially considering that the public maintenance status does not look
very promising.
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 10, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.43%. Comparing base (d0d9de6) to head (b2534e3).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #3724   +/-   ##
=======================================
  Coverage   97.43%   97.43%           
=======================================
  Files          55       55           
  Lines       10022    10029    +7     
  Branches     1842     1842           
=======================================
+ Hits         9765     9772    +7     
  Misses        149      149           
  Partials      108      108           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@stefan6419846 stefan6419846 merged commit b15a374 into py-pdf:main Apr 10, 2026
22 of 30 checks passed
@stefan6419846 stefan6419846 deleted the xmp-parseString branch April 10, 2026 09:19
stefan6419846 added a commit that referenced this pull request Apr 10, 2026
## What's new

### Security (SEC)
- Disallow custom XML entity declarations for XMP metadata (#3724) by @stefan6419846

### New Features (ENH)
- Skip MD5 key derivation for AES-256 encrypted PDFs (#3694) by @Ygnas

### Bug Fixes (BUG)
- Use remove_orphans in compress_identical_objects (#3310) by @j-t-1
- Fix PdfReadError when xref table contains comments before trailer (#3710) by @rassie
- Correctly verify AES padding during decryption (#3699) by @stefan6419846
- Fix stale object cache from non-authoritative object streams (#3698) by @astahlman
- Fix extract_links pairing when annotations include non-links (#3687) by @ReinerBRO

### Documentation (DOC)
- Add AI policy (#3717) by @stefan6419846

[Full Changelog](6.9.2...6.10.0)
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.

1 participant