HIGHCVSS v3.1 7.5Vulnerability

CVE-2026-115776

## Summary An unbounded-buffer vulnerability (CWE-770) in the Twisted words IRC server lets any unauthenticated remote client exhaust server memory. `twisted.words.protocols.irc.IRC.dataReceived` appends every received byte to a per-connection buffer and only removes data at a line feed, with no maximum length. Because `IRC` is a plain `Protocol` and not a `LineReceiver`, one connection that streams bytes without a line feed grows the buffer without bound and drives the whole single-threaded process to out-of-memory, dropping every user at once. The `twistd words` server inherits the method unchanged through `IRCUser`, and the data is buffered before any authentication. ## Details `IRC.dataReceived` keeps everything up to the last line feed in `self.buffer`: ```python # twisted/words/protocols/irc.py class IRC(protocol.Protocol): # not a LineReceiver, so no MAX_LENGTH buffer = "" def dataReceived(self, data): if isinstance(data, bytes): data = data.decode("utf-8") lines = (self.buffer + data).split(LF) self.buffer = lines.pop() # no 3line feed -> whole input stays buffered ... ``` With no line feed in the data, `lines.pop()` returns the entire accumulated content to `self.buffer`, so it grows by every chunk and is never bounded; `IRC` defines no `MAX_LENGTH`, no `lineLengthExceeded`, and no timeout, so the connection is never closed. The `twistd words` server protocol `IRCUser` subclasses `IRC` without overriding `dataReceived`, and the buffer is filled before any `PASS`, `NICK`, or `USER`, so no credentials are required. Affected product: Twisted (`twisted.words`), `twisted.words.protocols.irc.IRC` and its subclass `twisted.words.service.IRCUser` Affected versions: 26.4.0 and earlier ## PoC On a standard Twisted words IRC server (the server `twistd words` runs, using `IRCUser`), an unauthenticated client opens a single TCP connection and continuously sends data that contains no line feed, never c

Properties

Summary
Twisted: Unauthenticated Remote Denial of Service in the Twisted IRC Server via an Unbounded Line 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:35Z
Source url
https://github.com/advisories/GHSA-53xc-49m8-p798
Ghsa updated
2026-10-23T20:45:36Z
Ghsa id
GHSA-53xc-49m8-p798
Last source
GitHub Advisory Database
Score
7.5
Cvss version
3.1
Cve id
CVE-2026-115776
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.180
Last modified
2026-10-23T21:17:23.180

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-115776 (CVSS v3.1 7.5) — Ninja Signal Threat Intelligence | Ninja Signal