Allocation of Resources Without Limits or Throttling Affecting twisted package, versions [,26.10.0rc1)


Severity

Recommended
0.0
high
0
10

CVSS assessment by Snyk's Security Team. Learn more

Threat Intelligence

Exploit Maturity
Proof of Concept
EPSS
0.44% (39th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications

Snyk Learn

Learn about Allocation of Resources Without Limits or Throttling vulnerabilities in an interactive lesson.

Start learning
  • Snyk IDSNYK-PYTHON-TWISTED-21692664
  • published24 Oct 2026
  • disclosed23 Oct 2026
  • creditArkadiusz Marta

Introduced: 23 Oct 2026

NewCVE-2026-115775  (opens in a new tab)
CWE-770  (opens in a new tab)

How to fix?

Upgrade Twisted to version 26.10.0rc1 or higher.

Overview

Twisted is an event-based network programming and multi-protocol integration framework.

Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling via the XML element stream parsers SuxElementStream and ExpatElementStream in twisted.words.xish.domish, which impose no limit on the byte size or element count of a single stanza. An attacker can open an XMPP stream, send a container element followed by an unbounded stream of child elements, and never send the container's closing tag. Because an element is emitted and dropped only when its end tag arrives while it sits directly under the document root, every child element is appended to the in-memory tree and retained indefinitely, allowing a low-bandwidth peer to exhaust server memory.

Note: This is only exploitable against endpoints that parse untrusted XML streams using this stack, such as an XMPP server, and the attack requires no authentication because the stream is parsed before the authentication phase.

PoC

On any endpoint that parses untrusted XML streams with this stack, such as an XMPP server, open a stream by sending the opening `stream:stream` tag and a container element, then stream child elements continuously and never send the container's closing tag. No credentials are required, because in XMPP the stream is parsed before authentication.

Every child is appended to the container and retained because the container is never emitted, and the transport applies no limit on the size of the unfinished document. Because each small element becomes a full object in memory the footprint is many times the traffic sent, so a modest-bandwidth peer, or several such streams, drives the process to memory exhaustion.

Note: The PoC states no specific versions, operating system, or non-default configuration beyond an XMPP server endpoint parsing untrusted XML streams with this stack.

CVSS Base Scores

version 4.0
version 3.1