Skip to content

Update dependency lxml to v6.1.0 [SECURITY] - #52

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/pypi-lxml-vulnerability
Open

Update dependency lxml to v6.1.0 [SECURITY]#52
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/pypi-lxml-vulnerability

Conversation

@renovate

@renovate renovate Bot commented May 1, 2026

Copy link
Copy Markdown

This PR contains the following updates:

Package Change Age Confidence
lxml (source, changelog) 6.0.06.1.0 age confidence

lxml: Default configuration of iterparse() and ETCompatXMLParser() allows XXE to local files

CVE-2026-41066 / GHSA-vfmq-68hx-4jfw

More information

Details

Impact

Using either of the two parsers in the default configuration (with resolve_entities=True) allows untrusted XML input to read local files.

Patches

lxml 6.1.0 changes the default to resolve_entities='internal', thus disallowing local file access by default.

Workarounds

Setting the resolve_entities option explicitly to resolve_entities='internal' or resolve_entities=False disables the local file access.

Resources

Original report: https://bugs.launchpad.net/lxml/+bug/2146291

The default option was changed to resolve_entities='internal' for the normal XML and HTML parsers in lxml 5.0. The default was not changed for iterparse() and ETCompatXMLParser() at the time. lxml 6.1 makes the safe option the default for all parsers.

Severity

  • CVSS Score: 7.5 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

lxml/lxml (lxml)

v6.1.0

Compare Source

==================

This release fixes a possible external entity injection (XXE) vulnerability in
iterparse() and the ETCompatXMLParser.

Features added

  • GH#486: The HTML ARIA accessibility attributes were added to the set of safe attributes
    in lxml.html.defs. This allows lxml_html_clean to pass them through.
    Patch by oomsveta.

  • The default chunk size for reading from file-likes in iterparse() is now configurable
    with a new chunk_size argument.

Bugs fixed

  • LP#2146291: The resolve_entities option was still set to True for
    iterparse and ETCompatXMLParser, allowing for external entity injection (XXE)
    when using these parsers without setting this option explicitly.
    The default was now changed to 'internal' only (as for the normal XML and HTML parsers
    since lxml 5.0).
    Issue found by Sihao Qiu as CVE-2026-41066.

v6.0.4

Compare Source

==================

Bugs fixed

  • LP#2148019: Spurious MemoryError during namespace cleanup.

v6.0.3

Compare Source

==================

Bugs fixed

  • Several out of memory error cases now raise MemoryError that were not handled before.

  • Slicing with large step values (outside of +/- sys.maxsize) could trigger undefined C behaviour.

  • LP#2125399: Some failing tests were fixed or disabled in PyPy.

  • LP#2138421: Memory leak in error cases when setting the public_id or system_url of a document.

  • Memory leak in case of a memory allocation failure when copying document subtrees.

  • When mapping an XPath result to Python failed, the result memory could leak.

  • When preparing an XSLT transform failed, the XSLT parameter memory could leak.

Other changes

  • Built using Cython 3.2.4.

  • Binary wheels use zlib 1.3.2.

v6.0.2

Compare Source

==================

Bugs fixed

Other changes

  • Binary wheels for Py3.9-3.11 on the riscv64 architecture were added.

  • Error constants were updated to match libxml2 2.15.0.

  • Built using Cython 3.1.4.

v6.0.1

Compare Source

==================

Bugs fixed

  • LP#2116333: lxml.sax._getNsTag() could fail with an exception on malformed input.

  • GH#467: Some test adaptations were made for libxml2 2.15.
    Patch by Nick Wellnhofer.

  • LP2119510, GH#473: A Python compatibility test was fixed for Python 3.14+.
    Patch by Lumír Balhar.

  • GH#471: Wheels for "riscv64" on recent Python versions were added.
    Patch by ffgan.

  • GH#469: The wheel build no longer requires the wheel package unconditionally.
    Patch by Miro Hrončok.

  • Binary wheels use the library version libxml2 2.14.5.
    See https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.5

  • Windows binary wheels continue to use a security patched library version libxml2 2.11.9.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/pypi-lxml-vulnerability branch from c91d4ae to b139908 Compare May 20, 2026 05:26
@renovate
renovate Bot force-pushed the renovate/pypi-lxml-vulnerability branch from b139908 to 71ce658 Compare June 12, 2026 13:49
@renovate
renovate Bot force-pushed the renovate/pypi-lxml-vulnerability branch from 71ce658 to f995a3e Compare July 24, 2026 07:44
@renovate renovate Bot changed the title Update dependency lxml to v6.1.0 [SECURITY] Update dependency lxml to v6.1.1 [SECURITY] Jul 30, 2026
@renovate
renovate Bot force-pushed the renovate/pypi-lxml-vulnerability branch from f995a3e to af80855 Compare July 30, 2026 03:14
@renovate renovate Bot changed the title Update dependency lxml to v6.1.1 [SECURITY] Update dependency lxml to v6.1.0 [SECURITY] Jul 30, 2026
@renovate
renovate Bot force-pushed the renovate/pypi-lxml-vulnerability branch 2 times, most recently from 3c4c0a7 to b7a57e2 Compare August 1, 2026 11:10
@renovate
renovate Bot force-pushed the renovate/pypi-lxml-vulnerability branch from b7a57e2 to db9158d Compare August 15, 2026 08:07
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.

0 participants