Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessConnect as authorized MCP client
-
DeliveryRead advertised nested/array schema via tools/list
-
ExploitCraft tools/call args violating nested constraints
-
ExecutionValues bypass validate/2 and reach dispatch
-
ImpactHost mishandles schema-forbidden value
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
|
| Exploitation Conditions | Exploitation requires an authorized MCP client connection (PR:L) to a beam_mcp server in the 0.1.0-0.10.0 range, AND tools (or prompts) whose advertised JSON schema declares constraints the pre-fix validator never enforced: anything inside nested objects or array items - items, minItems/maxItems, minLength/maxLength, pattern, nested required, nested enum, nested additionalProperties:false - or any use of oneOf/anyOf/$ref. The decisive condition is a HOST whose dispatch code trusts the declared schema and acts on those nested/array fields without re-validating; if the host independently re-checks its inputs, the schema bypass is inert. Limiting factors: the attacker must be a connected/authorized MCP client (not anonymous), no user interaction is involved, and per the CVSS vector impact is limited to integrity (VI:L) with no confidentiality or availability effect - the realistic blast radius is bounded by whatever a given host does with the forbidden value. |
| Impact | This is a medium-severity, low-priority issue despite being network-reachable. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) scores 5.3 driven almost entirely by VI:L - a limited integrity effect on the vulnerable system, with VC:N (no confidentiality) and VA:N (no availability) and no subsequent-system impact. PR:L confirms the attacker must already be an authorized MCP client, not an anonymous internet attacker. The signals are mutually consistent and all point low: CISA's SSVC framework rates Exploitation 'none', Automatable 'no', and Technical Impact 'partial', which maps to a 'Track' (not 'Act') decision. No CISA KEV listing and no public exploit were provided, so exploitation is neither confirmed nor demonstrated. No EPSS probability was supplied in the input, so quantitative exploitation likelihood cannot be stated - this is a genuine data gap rather than a low score. The most important caveat is that the actual impact is indeterminate by design: the advisory explicitly says 'what the host does with such a value decides the impact,' so the VI:L rating is a conservative floor, and a specific host that feeds unvalidated nested/array arguments into a sensitive sink (file paths, DB queries, numeric limits) could experience worse-than-rated consequences. Risk should therefore be assessed per-deployment against how each host's dispatch code trusts the advertised schema. |
| Exploit ScenarioDerived | An authorized MCP client connects to a beam_mcp server and issues a tools/call (or prompts/get) request whose arguments satisfy the top-level object schema but violate constraints declared only inside nested objects or array items - for example an out-of-range number, a string failing a 'pattern', or an undeclared key where additionalProperties:false was advertised. Because BeamMCP.Schema.validate/2 only enforced the top-level object, these forbidden values pass validation and reach the tool's dispatch function, which the host wrote assuming the declared schema was enforced. No public exploit code was identified at time of analysis, and exploitation requires client-level access plus a host that trusts the nested schema. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
Authenticated MCP clients connected to a beam_mcp server in the 0.1.0 through 0.10.0 range can call tools (and prompts) with arguments that violate the JSON Schema the server itself advertised, because BeamMCP.Schema.validate/2 only enforced constraints on the top-level arguments object. The practical impact is limited to integrity (CVSS 3.1 base vector AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N, 5.3): a host whose dispatch code trusts the declared schema may act on out-of-range numbers, undeclared nested keys, or other forbidden values, and whatever that host does with the value determines the real blast radius. Exploitation requires an authorized MCP client connection (PR:L) plus a host that does not independently re-validate - no public exploit identified at time of analysis, CISA SSVC records Exploitation: none and Automatable: no, and no KEV listing exists. The issue is rated medium severity and low priority despite being network-reachable.
RemediationAI
Vendor-released patch: upgrade beam_mcp to 0.10.1, the first fixed version, corresponding to upstream patch commit 289dbdbad641943b29a3b8d1eb36506cc8cec10a; the advisory at https://github.com/ScriptKittyOS/beam_mcp/security/advisories/GHSA-mrg2-4747-fmpw and the EEF CNA page document the change. Because exploitation depends on a host trusting the schema it declared, the most effective compensating control is to re-validate tool arguments at the dispatch layer - specifically re-checking nested object keys, array item shapes and numeric/length bounds before acting on them - accepting the trade-off that host-side validation duplicates schema logic, must be kept in sync with tool definitions, and may reject calls that previously passed through unchecked. A second option is to restrict who can connect: the CVSS vector requires PR:L, so enforcing authentication, scoping MCP client registrations and limiting exposure of the server to trusted clients removes the attacker population, at the cost of reduced agent interoperability; this is a containment measure, not a fix, since any authorized client still reaches the gap. Where hosts cannot be changed promptly, avoid advertising tools whose correctness depends on nested or array-level constraints, or on oneOf/anyOf/$ref keywords, and disable such tools until 0.10.1 is deployed, with the trade-off that those capabilities become unavailable. Note that no KEV or exploitation evidence exists (SSVC Exploitation: none, Automatable: no) and no public exploit code has been identified, so remediation can proceed on a normal patch cadence rather than emergency change control.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
beam_mcp is an Elixir/Erlang (BEAM) implementation of a Model Context Protocol server - the repository is a Mix project with lib/, test/ and .formatter.exs - that exposes capabilities through MCP methods such as tools/list, tools/call and prompts/get. Its BeamMCP.Schema module is the validator sitting between the schema a tool advertises to clients via tools/list and the arguments actually handed to the tool's dispatch function at call time. The root cause is CWE-20 (Improper Input Validation): validate/2 implemented only a subset of JSON Schema - type, required, additionalProperties, enum and numeric bounds - and applied it to the top-level arguments object alone. Every nested constraint (items, minItems, maxItems, minLength, maxLength, pattern, nested required, nested enum, nested additionalProperties: false) and every keyword outside the enforced subset (oneOf, anyOf, $ref) was advertised to clients as part of the tool contract but silently ignored during validation. This is a validator/advertiser divergence rather than a parser bug: the server publishes a contract it never enforces, so a host that reasons about its own declared schema - including nested fields and array element shapes - receives values that schema forbids. The bounded integrity-only impact follows directly from that design: the vulnerability does not by itself execute code or disclose data, it defeats an input constraint whose consequences depend entirely on downstream host logic.
Know when Elixir gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Network-reachable MCP protocol (AV:N/AC:L), but the actor must be an authorized MCP client (PR:L); impact is a limited integrity effect on the host (I:L) with no confidentiality or availability loss.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
Improper Input Validation vulnerability in BeamMCP.Schema in ScriptKittyOS beam_mcp allows an MCP client to reach a tool's dispatch function with arguments that violate the input schema the server advertised. BeamMCP.Schema.validate/2 checked type, required, additionalProperties, enum and numeric bounds on the top-level arguments object only. Constraints inside nested objects and on array items (items, minItems, maxItems, minLength, maxLength, pattern, nested required, enum and additionalProperties: false) were advertised by tools/list and never checked at tools/call or prompts/get, and keywords outside the enforced subset (oneOf, anyOf, $ref) were advertised and ignored.
A host whose dispatch code relies on the schema it declared receives values the schema forbids, such as an out-of-range number or an undeclared key inside a nested object. What the host does with such a value decides the impact.
This issue affects beam_mcp: from 0.1.0 before 0.10.1.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Unbounded recursion in the Elixir `protobuf` Hex package (versions >= 0.8.0, < 0.16.1) lets unauthenticated remote attac
Improper JWT signature verification in Dashbit's nimble_zta (0.1.2 up to but not including 0.1.3) lets an unauthenticate
Session-swapping authentication bypass in the Elixir library AshAuthentication (versions 4.10.0 before 4.15.0 and 5.0.0-
Authentication bypass in the Elixir library ash_authentication lets an attacker who operates one federated identity-prov
Account takeover in AshAuthentication (Elixir/Ash) 4.14.0 through 4.14.x and 5.0.0-rc.10 through 5.0.0-rc.13 lets unauth
Server-Side Request Forgery protection bypass in the Elixir safeurl library (versions 0.1.0 and later) allows unauthenti
Unauthenticated remote CPU exhaustion in mtrudel Bandit's HTTP/2 server (versions before 1.14.0) is achievable by holdin
Unbounded per-connection memory and CPU growth in the Elixir Bandit HTTP/2 server (0.3.6 up to 1.14.0) lets an unauthent
Unauthenticated remote denial of service in the Elixir HTTP server Bandit (mtrudel/bandit) from 0.1.0 before 1.14.0 lets
Unauthenticated remote attackers can consume disproportionate server CPU on Bandit (mtrudel/bandit, Elixir/Erlang) by se
Memory-exhaustion denial of service in the elixir-protobuf library (protobuf) from 0.8.0 onward allows an unauthenticate
Atom table exhaustion in the Ash framework (Elixir) allows an unauthenticated remote attacker to crash a BEAM node by su
EUVD-2026-94980
GHSA-pgrr-g28j-jvp6
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB