CVE-2026-16584: AWS API MCP Server Security Policy Bypass via Startup Initialization Failure
The AWS API MCP Server (awslabs.aws-api-mcp-server) silently skips its security policy checks if the policy's enforcement data fails to load at startup. The server keeps running, and AWS operations that the deny and gate rules should block go through. Versions 0.2.13 up to 1.3.47 are affected. Upgrade to 1.3.47.
Published Jul 24, 2026 · Analysis Oct 25, 2026
What an attacker can do
The server has an optional, user-configured security policy that can deny AWS operations or gate them behind confirmation. At startup it loads the data used to enforce that policy. If the load fails, for example during degraded connectivity, the server does not exit. In the default configuration, the per-request check is then skipped for the life of the process. Configured deny and gate rules are never consulted, so the operations the policy was meant to restrict execute.
The effect is limited to the policy gate. IAM permissions on the credentials the server uses stay in force and still bound what it can do. So the damage depends on how broad those credentials are: a server with ReadOnlyAccess loses little, one with admin rights loses its only guardrail.
There is no attacker action in the exploit itself. A failure at startup creates the exposure, and then any AI assistant or prompt-injected instruction that issues a blocked AWS CLI command succeeds. The scoring reflects a local setting and user interaction, with high impact on confidentiality, integrity and availability.
Who is affected
awslabs.aws-api-mcp-server from 0.2.13 up to but not including 1.3.47. Only deployments that configured a security policy (deny or gate rules) rely on the check that gets skipped. Check the installed version:
pip show awslabs.aws-api-mcp-serverIf you run it with uvx, check the version pinned in your MCP client config.
awslabs.aws-api-mcp-server
- Ecosystem
- PyPI
- Affected
- >= 0.2.13, < 1.3.47
- Fixed in
- 1.3.47
- Check
pip show awslabs.aws-api-mcp-server
How to fix it
Upgrade to awslabs.aws-api-mcp-server 1.3.47:
pip install --upgrade awslabs.aws-api-mcp-server==1.3.47Per the fix PR 4315, the server now fails closed. It refuses to start if the policy enforcement data cannot load, and it denies requests at execution time if that data is unavailable. This covers the denylist and elicitList settings.
Workarounds from AWS, until you upgrade: use least-privilege IAM credentials scoped to the task, such as a ReadOnlyAccess role, and restart the server once connectivity returns if it started in a degraded state. Also patch any forks.
How to tell if you were hit
Check the server's startup logs for errors or warnings about loading policy data, and for a server that started during a network problem. Then review whether it later ran operations your policy denies or gates. AWS CloudTrail for the role the server uses shows what actually ran. Compare it with your deny list. Restarting a server after a failed load and seeing different behavior also confirms it. Beam records agent MCP tool calls, so AWS CLI calls from an agent can be reviewed there.
Original advisory
From the GitHub Advisory Database (CC BY 4.0).
Summary
The AWS API MCP Server is an open source Model Context Protocol (MCP) server that enables AI assistants to interact with AWS services and resources through AWS CLI commands. It provides programmatic access to manage your AWS infrastructure while maintaining proper security controls. It includes an optional, user-configured security policy that can deny or gate specific AWS operations. An issue exists where, if the data used to enforce this policy fails to initialize at server startup, the per-request policy check is silently skipped for the lifetime of the process.
Impact
On startup, the server loads data used to enforce the configured security policy. If that load fails, the server continues running without the enforcement data in place. In the default configuration, the per-request security check is then bypassed for the lifetime of the process: configured deny and gate rules are not consulted, and AWS API operations the policy was intended to restrict execute without enforcement. The scope is limited to the security-policy gate; IAM permissions on the configured credentials remain in effect and continue to bound what the server can do.
Impacted versions: >= 0.2.13 AND < 1.3.47
Patches
This issue has been addressed in awslabs.aws-api-mcp-server version 1.3.47. AWS recommends upgrading to the latest version and ensuring any forked or derivative code is patched to incorporate the new fixes.
Workarounds
Any one of the following prevents the bypass until you can upgrade:
- Use least-privilege IAM credentials (for example, a ReadOnlyAccess role) scoped to the task. IAM remains the primary access control and is enforced regardless of this issue.
- If the server started during degraded connectivity, restart it once connectivity is restored so the policy enforcement data loads successfully.
Contact
If you have any questions or comments about this advisory, AWS asks that you contact AWS Security via the reporting page or directly via email to [[email protected]](mailto:[email protected]). Please do not create a public GitHub issue.
Acknowledgement
We would like to thank Lav Kumar Vishwakarma (independent security researcher) for collaborating on this issue through the coordinated vulnerability disclosure process.
Credited to arnewouters.
Questions
- Does the bypass override IAM permissions?
No. AWS states IAM permissions on the configured credentials remain in effect. Only the server's own deny and gate policy is skipped.
- How do I know if my server was running without the policy?
The advisory gives no log line. Check startup logs for failed policy-data loads, and use CloudTrail to see whether any denied operation ran. If unsure, restart on a healthy network after upgrading.
- Which versions are affected by CVE-2026-16584?
0.2.13 up to but not including 1.3.47. Version 1.3.47 fails closed instead of skipping the check.
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
