Back to feed
23Track

CPython: [CVE-2026-115559] imaplib STARTTLS serves plaintext bytes buffered before the handshake as…

Python CPython · CVE-2026-115559
0 news outlets0 CERTs and agencies1 research labs

Assessment: Track

SSVC decision points: exploitation none, automatable no, technical impact partial, deployment high.

What is it?

IMAP4.starttls() wraps the socket in TLS but leaves self._readbuf, imaplib's own read-ahead buffer, untouched. Any plaintext bytes that arrived in the same recv() as the tagged OK to STARTTLS are returned by readline() after the handshake, so the client treats them as the first responses on the protected channel. A network attacker who cannot break TLS can append forged lines after the server's OK, let the handshake complete with the real server and a valid certificate, and have the client accept the forged CAPABILITY and the forged tagged completion of the next command. This is the STARTTLS command/response injection class of CVE-2011-0411.

Evidence

Technical advisories1Detailed write-ups from security research teams

Exploitation

  • Exploit code published (not verified by us)
  • Exploited in the wild (confirmed by a source)
  • Listed as known exploited (CISA KEV)
CVSS
6.3
EPSS
–
First seen
6 h ago
Status
corroborated

All Python vulnerabilities