Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-53937— MCP Kotlin SDK's unbounded line buffer in StdioServerTransport/StdioClientTransport leads to memory exhaustion (DoS)

Quick assessment

Affected
modelcontextprotocol io.modelcontextprotocol:kotlin-sdk
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

MCP Kotlin SDK 是用于模型上下文协议(Model Context Protocol, MCP)的 Kotlin 多平台软件开发工具包。在 0.7.0 至 0.12.0 版本中,位于 中的 方法会将来自 stdio 传输层接收到的每一块字节无上限地写入 。帧数据只有当检测到换行符 (0x0a)字节时才会从该缓冲区中提取。若对端持续流式发送字节但始终不发送换行符,内部缓冲区将无限增长,直至 JVM(或宿主进程)因内存溢出(OOM)被强制终止。 该内存泄漏问题在 和 中被进一步放大:二者均通过 队列接收原始

CVSS 6.2 · Medium

Possible ATT&CK Techniques 1 AI

T1029 · Scheduled Transfer
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-53937

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
MCP Kotlin SDK's unbounded line buffer in StdioServerTransport/StdioClientTransport leads to memory exhaustion (DoS)
Source: CVE Program / CVE List V5
Vulnerability Description
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.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
未加控制的资源消耗(资源穷尽)
Source: CVE Program / CVE List V5

Affected Products

II. Public POCs for CVE-2026-53937

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-53937

登录查看更多情报信息。

Patches & Fixes for CVE-2026-53937 (2)

Vendor Advisories for CVE-2026-53937 (1)

Vendor Pages for CVE-2026-53937 (1)

IV. Related Vulnerabilities

V. Comments for CVE-2026-53937

No comments yet


Leave a comment