{"id":"CVE-2026-53937","summary":"MCP Kotlin SDK's unbounded line buffer in StdioServerTransport/StdioClientTransport leads to memory exhaustion (DoS)","details":"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\u003cByteArray\u003e(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.","aliases":["GHSA-74gp-qhv5-v493"],"modified":"2026-09-12T03:30:49.044490181Z","published":"2026-09-08T23:21:46.554Z","database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-400","CWE-770"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53937.json"},"references":[{"type":"WEB","url":"https://github.com/modelcontextprotocol/kotlin-sdk/blob/6d5bac1/kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/shared/ReadBuffer.kt"},{"type":"WEB","url":"https://github.com/modelcontextprotocol/kotlin-sdk/releases/tag/0.13.0"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53937.json"},{"type":"ADVISORY","url":"https://github.com/modelcontextprotocol/kotlin-sdk/security/advisories/GHSA-74gp-qhv5-v493"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-53937"},{"type":"FIX","url":"https://github.com/modelcontextprotocol/kotlin-sdk/commit/6e6f80512fb8fcc9f3c031cfd693ccbcf9c4aaab"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/modelcontextprotocol/kotlin-sdk","events":[{"introduced":"9a70ceaaba99adab484655679ea12646e36c20eb"},{"fixed":"c339d8cb8656ae419d6149b3342a568ba0119351"},{"fixed":"6e6f80512fb8fcc9f3c031cfd693ccbcf9c4aaab"},{"fixed":"b7eeeb12058099f980fa98d1468506489a6b5f32"}],"database_specific":{"source":["DESCRIPTION","REFERENCES"],"extracted_events":[{"introduced":"0.7.0"},{"fixed":"0.12.0"}]}}],"versions":["0.12.0","0.11.1","0.11.0","0.9.0","0.8.3","0.8.1","0.8.0","0.7.7","0.7.6","0.7.5","0.7.4","0.7.2","0.7.2-alpha3","0.7.2-alpha2","0.7.2-alpha1","0.7.1","v0.7.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-53937.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}]}