Skip to content

Loosen lxml pin to allow 6.1.x (security: CVE-2026-41066)#217

Open
R4F4U wants to merge 1 commit into
raphaelm:masterfrom
R4F4U:loosen-lxml-pin-for-cve-2026-41066
Open

Loosen lxml pin to allow 6.1.x (security: CVE-2026-41066)#217
R4F4U wants to merge 1 commit into
raphaelm:masterfrom
R4F4U:loosen-lxml-pin-for-cve-2026-41066

Conversation

@R4F4U

@R4F4U R4F4U commented Jun 13, 2026

Copy link
Copy Markdown

What

Loosen the lxml cap from lxml~=6.0.2 to lxml>=6.0.2,<7.

Why

lxml 6.1.0 fixes CVE-2026-41066 (GHSA-vfmq-68hx-4jfw / PYSEC-2026-87) — an
XXE local-file read via the resolve_entities=True parser default. The current
lxml~=6.0.2 cap (<6.1) prevents any project depending on python-fints from
upgrading lxml to the patched 6.1.x, so the security fix is blocked downstream.

Compatibility

python-fints uses lxml only through etree.fromstring (fints/camt_parser.py).
Smoke-tested against lxml 6.1.0:

  • import fints, fints.client, fints.camt_parser → ok
  • etree.fromstring(b'<Doc xmlns="urn:test">…</Doc>') (namespaced parse) → ok

No lxml API used by python-fints changed between 6.0 and 6.1; 6.1.0 only changes
the parser's default entity-resolution mode, which python-fints doesn't rely on.

Change

One line in pyproject.toml: lxml~=6.0.2lxml>=6.0.2,<7.

lxml~=6.0.2 excludes 6.1.0, which fixes CVE-2026-41066 / GHSA-vfmq-68hx-4jfw
(XXE local-file read via the resolve_entities=True default). Downstream
projects that depend on python-fints cannot adopt the lxml fix while the cap
stays at <6.1.

python-fints uses lxml only via etree.fromstring (fints/camt_parser.py);
smoke-tested with lxml 6.1.0: import, namespaced parse and client import all ok.
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