CVE-2026-105806: Payload: Improper access control for MCP API keys
The Payload CMS MCP plugin, `@payloadcms/plugin-mcp`, had missing authorization on its API key collection. An authenticated user could manage MCP API keys that belong to other accounts, which allows privilege escalation and account takeover. Versions 3.61.0 up to 3.88.0 are affected. Upgrade to 3.88.0.
Published Oct 6, 2026 · Analysis Oct 22, 2026
What an attacker can do
The plugin stores MCP API keys in a payload-mcp-api-keys collection. Each key maps to a user, and an MCP request using that key runs as that user. Before the fix, access control on that collection did not tie keys to their owner. A logged-in user with low privileges could create, read, update or delete keys outside their own account.
The practical attack is account takeover. An attacker who can get a key that resolves to a more privileged user, or can assign ownership of a key to themselves or another account, can call the MCP endpoint as that user. They then reach whatever MCP tools the instance exposes: content, globals, jobs and resources. The CVSS 4.0 vector reflects network access, low privileges, no user interaction, and high confidentiality and integrity impact.
The attacker needs a valid login on the Payload instance. Applications that do not use @payloadcms/plugin-mcp are not affected.
Who is affected
@payloadcms/plugin-mcp from 3.61.0 up to, but not including, 3.88.0. Only projects that enabled the MCP plugin are exposed. Check the installed version:
npm ls @payloadcms/plugin-mcp@payloadcms/plugin-mcp
- Ecosystem
- npm
- Affected
- >= 3.61.0, < 3.88.0
- Fixed in
- 3.88.0
- Check
npm ls @payloadcms/plugin-mcp
How to fix it
Upgrade to @payloadcms/plugin-mcp 3.88.0 or later:
npm install @payloadcms/[email protected]The fix commit makes create available to any signed-in user from the configured user collection. read, update, delete and unlock are limited to keys whose user matches the requester. The user field can no longer be set or changed by clients and defaults to the signed-in user. Existing keys keep working.
Until you can upgrade, the advisory says to disable the MCP plugin or restrict MCP API-key management to trusted users. After upgrading, consider rotating keys that untrusted users could reach.
How to tell if you were hit
Audit the payload-mcp-api-keys collection for keys you did not expect, keys created or changed by low-privilege users, and keys whose user value differs from the creator. Check API access logs for requests to the MCP endpoint made with those keys and for actions taken by the users they map to. The sources give no specific log line. Beam logs agent MCP tool calls, which helps if your own agents use this Payload MCP endpoint.
Original advisory
From the GitHub Advisory Database (CC BY 4.0).
Impact
Under certain conditions, an authenticated user could manage MCP API keys outside their intended account allowing an attacker to escalate privileges through account takeover.
Applications that do not use @payloadcms/plugin-mcp are not affected.
Patches
Users should upgrade to @payloadcms/plugin-mcp version 3.88.0 or later.
Workarounds
Upgrading is recommended. Until then, disable the MCP plugin or restrict MCP API-key management to trusted users.
Credited to pavelkohout396.
Questions
- Is my Payload site affected if I don't use the MCP plugin?
No. The advisory states that applications that do not use
@payloadcms/plugin-mcpare not affected.- Does the attacker need an account?
Yes. The flaw is exploited by an authenticated user, and the CVSS vector requires low privileges. They use it to manage MCP API keys outside their own account.
- What is the workaround if I can't upgrade yet?
Disable the MCP plugin, or restrict MCP API-key management to trusted users. The advisory recommends upgrading to 3.88.0 as the real fix.
References
How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. The analysis is written by an AI model from the sources listed above and checked by automated rules before it is published. Check versions against the vendor's advisory before you act. Methodology
More Other MCP servers and tools vulnerabilities
All Other MCP servers and tools entriesCVE-2026-77361
obsidian-tc : Symlink read-ACL scope bypass via lexical path checks
medium4.7Oct 23, 2026CVE-2026-114126
Storybook dev server vulnerable to code injection from the local network
high8.7Oct 22, 2026CVE-2026-113731
djust: Arbitrary absolute-path file read in the find_handlers_for_template MCP tool
low3.3Oct 21, 2026CVE-2026-114125
Storybook: Missing origin validation in Storybook preview allows code injection from malicious websites
critical9.4Oct 21, 2026CVE-2026-111770
MCP TypeScript server SDK: Shared transport or server instances delivered one HTTP client's messages to another
high7.7Oct 20, 2026GHSA-953h-535j-jg2v
agent-router: MCP session resume does not verify the embedded anti-hijacking subject; default Helm seed makes session IDs forgeable
medium6.8Oct 19, 2026
