HIGHCVSS v3.1 7.5Vulnerability

CVE-2026-115778

## Summary An allocation-without-limits vulnerability (CWE-770) in the Twisted conch telnet transport lets any unauthenticated remote peer exhaust server memory over a single connection. When the peer opens a telnet subnegotiation with `IAC SB` and then streams bytes without ever sending the `IAC SE` terminator, every byte is appended to a per-connection buffer that has no maximum length. The buffer persists across reads and is released only on the terminator the attacker withholds, so it grows without bound until the process is killed. ## Details The option-negotiation state machine in `Telnet.dataReceived` enters the `subnegotiation` state on `IAC SB` and sets an empty command list. In that state every non-`IAC` byte is appended to the list with no length check: ```python # src/twisted/conch/telnet.py (Telnet.dataReceived) elif self.state == "subnegotiation": if b == IAC: self.state = "subnegotiation-escaped" else: self.commands.append(b) # unbounded: no len(self.commands) check ``` `self.commands` is an instance attribute that persists across `dataReceived` calls and is deleted only when `IAC SE` completes the subnegotiation. Negotiation runs at the transport layer before authentication, and the bytes are consumed inside `dataReceived` before any application callback, so an application cannot impose a bound. Twisted caps other parser buffers, for example `NetstringReceiver.MAX_LENGTH`, but not this one. Affected product: Twisted, `twisted.conch.telnet` transport Affected versions: confirmed against 26.4.0 ## PoC On any endpoint that exposes the Twisted telnet transport, such as the Twisted manhole telnet service, open one connection and send the two bytes `IAC SB` (`0xFF 0xFA`), then stream any non-`0xFF` bytes continuously and never send the `IAC SE` terminator (`0xFF 0xF0`). No credentials are required, because option negotiation runs before authentication. Every byte is appended to the per-connection subnegotiation buffer

Properties

Summary
Twisted: Unauthenticated Remote Denial of Service in the Twisted conch Telnet Transport via an Unbounded Subnegotiation Buffer
Severity
high
Nvd fetched at
2026-10-23T22:30:12.098505+00:00
Cvss score
7.5
Cvss severity
HIGH
Retrieved at
2026-10-23T22:32:28+00:00
Ghsa published
2026-10-23T20:45:26Z
Source url
https://github.com/advisories/GHSA-cwm5-jh59-mwxr
Ghsa updated
2026-10-23T20:45:27Z
Ghsa id
GHSA-cwm5-jh59-mwxr
Last source
GitHub Advisory Database
Score
7.5
Cvss version
3.1
Cve id
CVE-2026-115778
Cvss vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
First seen by Signal
2026-10-23T22:32:25+00:00
Is ghsa only
false
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Published at
2026-10-23T21:17:23.320
Last modified
2026-10-23T21:17:23.320

Related Entities (4)

AFFECTS (1)

→[Software]pip/Twisted

VULNERABLE_TO (1)

←[Software]pip/Twisted

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-115778 (CVSS v3.1 7.5) — Ninja Signal Threat Intelligence | Ninja Signal