CVE-2026-53937MCP Kotlin SDK's unbounded line buffer in StdioServerTransport/StdioClientTransport leads to memory exhaustion (DoS)
Updated under an hour ago ()
Does this affect you?
It affects modelcontextprotocol io.modelcontextprotocol:kotlin-sdk and 3 other products. Add what you run to find out whether that includes you.
No exploitation reported and no EPSS estimate yet.
Do this next
Free account, 1 product
MCP Kotlin SDK is the Kotlin Multiplatform software development kit for the Model Context Protocol. In versions 0.7.0 through 0.12.0, `ReadBuffer.append` in `kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/shared/ReadBuffer.kt` writes every chunk of bytes received from the stdio transport into a `kotlinx.io.Buffer` with no size cap. Frames are extracted from that buffer only when a `\n` (0x0a) byte is observed. A peer that streams bytes without ever sending a newline causes the internal buffer to grow indefinitely until the JVM (or the surrounding host process) is OOM-killed. The leak is amplified by `StdioServerTransport` and `StdioClientTransport`, which both queue raw chunks through a `kotlinx.coroutines.channels.Channel<ByteArray>(Channel.UNLIMITED)` and then call `readBuffer.append(chunk)` without backpressure or size guard. This is a remote-pre-auth denial of service whenever an SDK stdio server's stdin is fed by an untrusted or attacker-controlled producer (for example: a host program that exec's the MCP server as a subprocess and pipes through bytes received from a network peer, or a sidecar wrapper that proxies bytes from an HTTP endpoint to the stdio transport). Version 0.13.0 fixes the issue.
- CVSS
- 6.2 MEDIUM (v3.1, CNA)CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Weakness (CWE)
- CWE-400, CWE-770
- Known exploited
- Not in CISA's KEV catalog
- EPSS (exploitation in the next 30 days)
- Not loaded for this CVE
- Assigned by
- GitHub_M
- NVD analysis
- Awaiting Analysis
- Record last updated
- Sep 14, 2026
- First seen by InfoSec Signals
- Oct 9, 2026
Affected products
modelcontextprotocol io.modelcontextprotocol:kotlin-sdk modelcontextprotocol:io.modelcontextprotocol_kotlin_sdk (from the name) | before 0.13.0 | CNA record |
modelcontextprotocol io.modelcontextprotocol:kotlin-sdk-client modelcontextprotocol:io.modelcontextprotocol_kotlin_sdk_client (from the name) | from 0.7.0, < 0.13.0 | CNA record |
modelcontextprotocol io.modelcontextprotocol:kotlin-sdk-core modelcontextprotocol:io.modelcontextprotocol_kotlin_sdk_core (from the name) | before 0.13.0 | CNA record |
modelcontextprotocol io.modelcontextprotocol:kotlin-sdk-server modelcontextprotocol:io.modelcontextprotocol_kotlin_sdk_server (from the name) | from 0.7.0, < 0.13.0 | CNA record |
References
- https://github.com/modelcontextprotocol/kotlin-sdk/security/advisories/GHSA-74gp-qhv5-v493x-refsource-confirm
- https://github.com/modelcontextprotocol/kotlin-sdk/commit/6e6f80512fb8fcc9f3c031cfd693ccbcf9c4aaabx-refsource-misc
- https://github.com/modelcontextprotocol/kotlin-sdk/blob/6d5bac1/kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/shared/ReadBuffer.ktx-refsource-misc
- https://github.com/modelcontextprotocol/kotlin-sdk/releases/tag/0.13.0x-refsource-misc
The CVE record on cve.org NVD's entry
The CVE record is authoritative. Products marked “from the name” were identified from the CNA's free-text names, not a CPE, and are matched less certainly. This product uses the NVD API but is not endorsed or certified by the NVD.