JSON boolean and null tool arguments reach dispatch as strings in beam_mcp
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- Present
- Impact type
- —
- Confidentiality · integrity · availability
- None · Low · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA.
Summary
ScriptKittyOS beam_mcp from 0.1.0 before 0.10.1 converts MCP tool arguments that are JSON true, false or null into the strings "true", "false" or "nil" (CWE-704). Because a non-empty string is truthy in Elixir, a host that tests a boolean argument can take the wrong branch for false, and a policy layer that allows false but refuses true can be bypassed. The sources describe a remote client that controls the argument, and the practical impact is limited to hosts whose behaviour on false differs from true. The same normalization applies to prompts/get arguments from 0.5.0 onward.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
Description from the CNA
Incorrect Type Conversion or Cast vulnerability in BeamMCP.Server in ScriptKittyOS beam_mcp allows an MCP client's JSON true, false and null tool arguments to reach the host's dispatch function as the strings "true", "false" and "nil". After BeamMCP.Schema.validate/2 accepted a value as a boolean, normalize_arguments/2 passed every argument through to_json_value/1, whose atom clause converts true, false and nil to strings. A string is truthy in Elixir, so a host that tests a boolean argument, for example if args.dry_run, takes the opposite branch for false, and a guard such as confirm: false reads as set. The client controls the argument and could send true directly, so the practical impact is limited to hosts whose behaviour on false differs from their behaviour on true, and to any policy layer in front of the server that permits false but refuses true. The same normalisation applies to prompts/get arguments, which exist from 0.5.0. This issue affects beam_mcp: from 0.1.0 before 0.10.1.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| ScriptKittyOS | beam_mcp | 0.1.0 to before 0.10.1 | 0.10.1 | Patch available | CNA |
- beam_mcp VendorScriptKittyOS Affected 0.1.0 to before 0.10.1 Fixed in 0.10.1 Patch available CNA
CPE names CNA · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:scriptkittyos:beam_mcp:*:*:*:*:*:*:*:* | — | — | ScriptKittyOS |
- cpe:2.3:a:scriptkittyos:beam_mcp:*:*:*:*:*:*:*:* Versions — — ·ScriptKittyOS
Remediation
Upgrade ScriptKittyOS beam_mcp to version 0.10.1, which fixes this issue. The sources list no fixed version for other releases of beam_mcp.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
- Fix · CNA beam_mcp (ScriptKittyOS) Fixed in 0.10.1
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
ScriptKittyOS beam_mcp 0.10.1, 289dbdbad641943b29a3b8d1eb36506cc8cec10a
2 records Highest priority Priority LOW 2 LOW
Other records, highest priority first
- TI-2026-69464 beam_mcp: nested tool argument constraints advertised but not enforcedPriority LOW 24
Timeline
- 2026-10-08 Threatist record created from CVE-2026-104634
- 2026-10-08 Alias added: GHSA-rcm8-2hxq-3q25
References
More ScriptKittyOS vulnerabilities
- TI-2026-69464 beam_mcp: nested tool argument constraints advertised but not enforced CVSS 4.0MEDIUM 5.3
Sources
- CVE-2026-104634 · CVE Program
- CVE-2026-104634 · NVD
- FIRST EPSS
- GHSA-rcm8-2hxq-3q25 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences