Skip to content

Commit e814c84

Browse files
authored
Merge pull request #1195 from jasnow/aug-01-mcp-updates
GHSA/SYNC + updated 5 mcp gem advisories @simi - Thanks for helping by reviewing and approving my PR.
2 parents 27c668b + 4b408f6 commit e814c84

7 files changed

Lines changed: 148 additions & 63 deletions
Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
---
22
gem: mcp
3+
cve: 2026-63118
34
ghsa: rjr6-rcgv-9m7m
4-
url: https://github.com/modelcontextprotocol/ruby-sdk/security/advisories/GHSA-rjr6-rcgv-9m7m
5+
url: https://nvd.nist.gov/vuln/detail/CVE-2026-63118
56
title: Streamable HTTP transport lacks DNS-rebinding (Host/Origin) protection
67
date: 2026-07-07
78
description: |
@@ -33,13 +34,27 @@ description: |
3334
For MCP servers wired to filesystem, shell, or credential tools,
3435
this is sensitive-data disclosure and, depending on the tool set,
3536
local action execution.
37+
38+
## Credit
39+
40+
Reported by tonghuaroot.
41+
cvss_v4: 6.9
3642
patched_versions:
3743
- ">= 0.23.0"
3844
related:
3945
url:
46+
- https://nvd.nist.gov/vuln/detail/CVE-2026-63118
4047
- https://rubygems.org/gems/mcp/versions/0.23.0
4148
- https://github.com/modelcontextprotocol/ruby-sdk/releases/tag/v0.23.0
49+
- https://github.com/modelcontextprotocol/ruby-sdk/commit/ba543083a7594e7892b29464b89091816446ff7a
50+
- https://advisories.gitlab.com/gem/mcp/CVE-2026-63118
51+
- https://osv.dev/vulnerability/GHSA-rjr6-rcgv-9m7m
4252
- https://github.com/modelcontextprotocol/ruby-sdk/security/advisories/GHSA-rjr6-rcgv-9m7m
53+
- https://github.com/advisories/GHSA-rjr6-rcgv-9m7m
4354
notes: |
44-
- "Moderate" severity in GHSA but no values.
4555
- date from gem release
56+
- cvss_v4 from GHSA and nvd.nist.gov URL
57+
- From GHSA: "Reporter notes: This issue was found by source review of
58+
the `mcp` gem's Streamable HTTP transport and confirmed end-to-end
59+
against the released gem `mcp` 0.18.0 as shown above. It is
60+
reported independently on its own merits."
Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
---
22
gem: mcp
3+
cve: 2026-63119
34
ghsa: 7683-3w9x-ch42
4-
url: https://github.com/modelcontextprotocol/ruby-sdk/security/advisories/GHSA-7683-3w9x-ch42
5+
url: https://nvd.nist.gov/vuln/detail/CVE-2026-63119
56
title: Unbounded line buffer in stdio transports leads to memory
67
exhaustion (DoS)
78
date: 2026-07-07
@@ -16,15 +17,27 @@ description: |
1617
ever emitting a newline causes gets to accumulate the entire stream
1718
in a single Ruby String until the process is killed by the
1819
operating-system OOM killer.
20+
21+
## Credit
22+
23+
Reported by tonghuaroot
24+
25+
Identified during a cross-SDK audit of the stdio unbounded-buffer
26+
vulnerability class, prompted by GHSA-74gp-qhv5-v493.
1927
cvss_v3: 6.2
2028
patched_versions:
2129
- ">= 0.23.0"
2230
related:
2331
url:
32+
- https://nvd.nist.gov/vuln/detail/CVE-2026-63119
33+
2434
- https://rubygems.org/gems/mcp/versions/0.23.0
2535
- https://github.com/modelcontextprotocol/ruby-sdk/releases/tag/v0.23.0
2636
- https://docs.ruby-lang.org/en/3.3/IO.html#method-i-gets
37+
- https://github.com/modelcontextprotocol/ruby-sdk/commit/267b8fa6285453525c81ce43db6b7dcd7a8a8c2f
38+
- https://advisories.gitlab.com/gem/mcp/CVE-2026-63119
39+
- https://osv.dev/vulnerability/GHSA-7683-3w9x-ch42
2740
- https://github.com/modelcontextprotocol/ruby-sdk/security/advisories/GHSA-7683-3w9x-ch42
2841
notes: |
29-
- cvss_v3 came from GHSA.
42+
- cvss_v3 from GHSA
3043
- date from gem release

gems/mcp/CVE-2026-67430.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
gem: mcp
3+
cve: 2026-67430
4+
ghsa: 52jp-gj8w-j6xh
5+
url: https://nvd.nist.gov/vuln/detail/CVE-2026-67430
6+
title: Unbounded session retention in StreamableHTTPTransport allows
7+
memory exhaustion via initialize flood
8+
date: 2026-07-07
9+
description: |
10+
## Summary
11+
12+
In its default configuration, MCP::Server::Transports::StreamableHTTPTransport
13+
never expires sessions. Every successful initialize request stores a
14+
new ServerSession and a session record under a fresh UUID, and the
15+
only path that removes them is an explicit client-issued HTTP DELETE.
16+
An unauthenticated attacker can repeatedly initialize new sessions
17+
and immediately disconnect, forcing the server to retain an unbounded
18+
number of ServerSession objects until memory is exhausted.
19+
20+
## Impact
21+
22+
- **Attacker requirements:** unauthenticated TCP reach of the MCP
23+
endpoint. No session, no credentials.
24+
25+
- **Effect:** memory-exhaustion denial of service. A sustained or
26+
distributed attacker can OOM the worker; on services that recycle
27+
workers, the attacker simply repeats. On multi-tenant gateways, one
28+
tenant can starve all others.
29+
30+
- **Affected deployments:** every deployment that does not opt into
31+
`session_idle_timeout`. Because the README presents this as an
32+
opt-in mitigation rather than a default, real-world deployments
33+
are likely to ship vulnerable.
34+
cvss_v3: 5.3
35+
patched_versions:
36+
- ">= 0.23.0"
37+
related:
38+
url:
39+
- https://nvd.nist.gov/vuln/detail/CVE-2026-67430
40+
- https://rubygems.org/gems/mcp/versions/0.23.0
41+
- https://github.com/modelcontextprotocol/ruby-sdk/releases/tag/v0.23.0
42+
- https://github.com/modelcontextprotocol/ruby-sdk/commit/afb968c468c178c4d3294b423fcce250621692f4
43+
- https://advisories.gitlab.com/gem/mcp/CVE-2026-67430
44+
- https://osv.dev/vulnerability/GHSA-52jp-gj8w-j6xh
45+
- https://github.com/modelcontextprotocol/ruby-sdk/security/advisories/GHSA-52jp-gj8w-j6xh
46+
- https://github.com/advisories/GHSA-52jp-gj8w-j6xh
47+
notes: |
48+
- cvss_v3 from GHSA
49+
- date from gem release
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
---
22
gem: mcp
3+
cve: 2026-67431
34
ghsa: 5p9g-j988-pcwv
4-
url: https://github.com/modelcontextprotocol/ruby-sdk/security/advisories/GHSA-5p9g-j988-pcwv
5-
title: Ruby SSE Session Poisoning
5+
url: https://nvd.nist.gov/vuln/detail/CVE-2026-67431
6+
title: MCP Ruby SDK - Ruby SSE Session Poisoning
67
date: 2026-07-07
78
description: |
89
## Summary
@@ -12,13 +13,27 @@ description: |
1213
with a stolen session ID can execute tools with the victim's session.
1314
This is a silent attack - the victim's session is compromised and
1415
being used for unauthorized actions, but it is hard to know for the victim.
16+
17+
## Impact
18+
19+
- **Integrity:** HIGH - Attacker can execute unauthorized tools and
20+
modify state.
21+
22+
- **Availability:** LOW - Attacker can disrupt victim's session with
23+
injected responses.
24+
cvss_v4: 8.3
1525
patched_versions:
1626
- ">= 0.23.0"
1727
related:
1828
url:
29+
- https://nvd.nist.gov/vuln/detail/CVE-2026-67431
1930
- https://rubygems.org/gems/mcp/versions/0.23.0
2031
- https://github.com/modelcontextprotocol/ruby-sdk/releases/tag/v0.23.0
32+
- https://github.com/modelcontextprotocol/ruby-sdk/commit/35466605319a34e4c7808712ae9bb1ca1afb2356
33+
- https://advisories.gitlab.com/gem/mcp/CVE-2026-67431
34+
- https://osv.dev/vulnerability/GHSA-5p9g-j988-pcwv
2135
- https://github.com/modelcontextprotocol/ruby-sdk/security/advisories/GHSA-5p9g-j988-pcwv
36+
- https://github.com/advisories/GHSA-5p9g-j988-pcwv
2237
notes: |
23-
- Project GHSA has high severity.
38+
- cvss_v4 from GHSA; Project GHSA has high severity.
2439
- date from gem release

gems/mcp/CVE-2026-67432.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
gem: mcp
3+
cve: 2026-67432
4+
ghsa: h669-8m4g-r2hc
5+
url: https://nvd.nist.gov/vuln/detail/CVE-2026-67432
6+
title: Unbounded JSON-RPC request body causes uncontrolled memory
7+
allocation in StreamableHTTPTransport
8+
date: 2026-07-07
9+
description: |
10+
## Summary
11+
12+
An unauthenticated remote attacker can force any MCP Ruby SDK server
13+
using MCP::Server::Transports::StreamableHTTPTransport to allocate
14+
gigabytes of memory by sending a single oversized JSON-RPC POST. The
15+
transport reads the entire HTTP body into a Ruby String and parses
16+
it with JSON.parse(body, symbolize_names: true) with no size limit,
17+
no Content-Length pre-check, and no streaming parser, allowing
18+
trivial denial of service against the worker process.
19+
20+
## Impact
21+
22+
- **Attacker requirements:** none beyond TCP reach of the MCP
23+
endpoint. No session, no credentials, no prior interaction.
24+
25+
- **Effect:** memory-exhaustion denial of service. A single request
26+
can take a worker offline; sustained low-rate requests keep the
27+
service down across worker restarts. On multi-tenant deployments a
28+
single attacker tenant can starve neighbours.
29+
30+
- **Affected deployments:** every server mounting
31+
`MCP::Server::Transports::StreamableHTTPTransport` as a Rack
32+
app — the canonical HTTP deployment pattern. Both stateful
33+
and `stateless: true` configurations are affected.
34+
cvss_v3: 7.5
35+
patched_versions:
36+
- ">= 0.23.0"
37+
related:
38+
url:
39+
- https://nvd.nist.gov/vuln/detail/CVE-2026-67432
40+
- https://rubygems.org/gems/mcp/versions/0.23.0
41+
- https://github.com/modelcontextprotocol/ruby-sdk/releases/tag/v0.23.0
42+
- https://github.com/modelcontextprotocol/ruby-sdk/commit/772e0cb1f9db69312006926eee59a7287ad50166
43+
- https://advisories.gitlab.com/gem/mcp/CVE-2026-67432
44+
- https://osv.dev/vulnerability/GHSA-h669-8m4g-r2hc
45+
- https://github.com/modelcontextprotocol/ruby-sdk/security/advisories/GHSA-h669-8m4g-r2hc
46+
- https://github.com/advisories/GHSA-h669-8m4g-r2hc
47+
notes: |
48+
- cvss_v3 from GHSA
49+
- date from gem release

gems/mcp/GHSA-52jp-gj8w-j6xh.yml

Lines changed: 0 additions & 28 deletions
This file was deleted.

gems/mcp/GHSA-h669-8m4g-r2hc.yml

Lines changed: 0 additions & 28 deletions
This file was deleted.

0 commit comments

Comments
 (0)