NewApp Monitoring is liveSign up free
AgentbeamBeta
AI agent vulnerability · Other MCP servers and tools

CVE-2026-16584: AWS API MCP Server Security Policy Bypass via Startup Initialization Failure

highCVSS 4.0 7.3 · 3.1 7.0GHSA-29w2-fq35-v728

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-server

If 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.47

Per 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 entries