{"id":"GHSA-4prq-p2x5-w9fh","kind":"vulnerability","aliases":["GHSA-4prq-p2x5-w9fh"],"related":[],"title":"CVE-2026-115413 - AWS API MCP Server OAuth token audience validation bypass","description":"CVE-2026-115413 - AWS API MCP Server OAuth token audience validation bypass\n\n### CVE-2026-115413 - AWS API MCP Server OAuth token audience validation bypass\n\nBulletin ID: 2026-152-AWS Scope: AWS Content Type: Important (requires attention) Publication Date: 10/27/2026 11:00 AM PDT\n\nDescription:\n\nThe 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 can be configured to serve the streamable-http transport with OAuth authentication, validating a bearer token against an identity provider nominated by the operator. We identified CVE-2026-115413 in versions >=1.3.0 and <1.6.0, the server validates a token's signature, issuer and expiry, but not the claim identifying the application the token was issued for. A token that the nominated identity provider issued to another application in the same tenant is therefore accepted, which may allow AWS API calls to be made with the credentials configured on the host.\n\nImpacted versions: >=1.3.0 AND <1.6.0\n\nResolution:\n\nThis issue has been addressed in awslabs.aws-api-mcp-server version 1.6.0. We recommend upgrading to the latest version and ensuring any forked or derivative code is patched to incorporate the new fixes. Operators using AUTH_TYPE=oauth should also set AUTH_AUDIENCE, or AUTH_CLIENT_ID for identity providers whose access tokens carry no audience claim, such as Amazon Cognito.\n\nWorkarounds:\n\nOperators who cannot upgrade immediately can use the default stdio transport rather than the streamable-http transport.\n\nReferences:\n\n- CVE-2026-115413\n- GHSA-4prq-p2x5-w9fh\n\nAcknowledgement:\n\nWe would like to thank Yuval Elbar (@YuvalElbar6) for collaborating on this issue through the coordinated vulnerability disclosure process.\n\n Please email aws-security@amazon.com with any security questions or concerns.","summary":"The AWS API MCP Server validates an OAuth bearer token's signature, issuer and expiry but does not check which application the token was issued for. A token issued by the same identity provider to a different application in the same tenant is accepted, which may let an attacker make AWS API calls with the credentials configured on the host.","severity":"high","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["ai-tooling","aws","aws-api-mcp-server","lab-disclosure","mcp","oauth","streamable-http"],"not_affected_if":["auth-not-oauth","stdio-transport","version-1.6.0-or-later"],"how_to_check":"- Check the installed version of `awslabs.aws-api-mcp-server`; versions `>=1.3.0` and `<1.6.0` are affected.\n- Check whether the server runs with `AUTH_TYPE=oauth` on the streamable-http transport.\n- Check whether `AUTH_AUDIENCE` or `AUTH_CLIENT_ID` is set.","fix":"- Upgrade `awslabs.aws-api-mcp-server` to `1.6.0` or later, and patch any forked or derivative code.\n- If using `AUTH_TYPE=oauth`, set `AUTH_AUDIENCE`, or `AUTH_CLIENT_ID` for identity providers such as Amazon Cognito whose access tokens carry no audience claim.\n- Until upgraded, switch to the default stdio transport instead of streamable-http.","status":"open","published_at":"2026-10-27T00:00:00+00:00","first_seen_at":"2026-10-27T18:39:55+00:00","triaged_at":"2026-10-27T18:40:47+00:00","updated_at":"2026-10-27T18:40:47+00:00","category":"ai-tooling","confidence":0.7,"triage":{"at":"2026-10-27T18:40:47Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade `awslabs.aws-api-mcp-server` to `1.6.0` or later, and patch any forked or derivative code.\n- If using `AUTH_TYPE=oauth`, set `AUTH_AUDIENCE`, or `AUTH_CLIENT_ID` for identity providers such as Amazon Cognito whose access tokens carry no audience claim.\n- Until upgraded, switch to the default stdio transport instead of streamable-http.","reach":"network","title":"AWS API MCP Server: OAuth accepts tokens issued to other applications","impact":"high","summary":"The AWS API MCP Server validates an OAuth bearer token's signature, issuer and expiry but does not check which application the token was issued for. A token issued by the same identity provider to a different application in the same tenant is accepted, which may let an attacker make AWS API calls with the credentials configured on the host.","category":"ai-tooling","nicknames":[],"who_cares":["aws","mcp","aws-api-mcp-server","streamable-http","oauth"],"confidence":0.7,"needs_auth":"unknown","worst_case":"Attacker makes AWS API calls using host-configured credentials","analyst_note":"Confirm the attacker's prerequisite: whether they need a valid token from the same tenant's identity provider; check the AWS bulletin 2026-152-AWS and the GHSA-4prq-p2x5-w9fh advisory for details.","how_to_check":"- Check the installed version of `awslabs.aws-api-mcp-server`; versions `>=1.3.0` and `<1.6.0` are affected.\n- Check whether the server runs with `AUTH_TYPE=oauth` on the streamable-http transport.\n- Check whether `AUTH_AUDIENCE` or `AUTH_CLIENT_ID` is set.","needs_analyst":true,"not_affected_if":["stdio-transport","version-1.6.0-or-later","auth-not-oauth"],"who_is_affected":"Only operators who run the AWS API MCP Server with the streamable-http transport and OAuth authentication are exposed, because only that configuration validates bearer tokens against an identity provider. The server must be on a version from 1.3.0 up to but not including 1.6.0. Teams on stdio transport, or on 1.6.0 or later, can skip it.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.000815,"input_tokens":3972,"output_tokens":835,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-115413':3A,102C,114C,203C,355C '-152':127C '-2026':2A,101C,113C,202C,354C '00':140C '1.3.0':206C,267C '1.6.0':208C,269C,283C '10/27/2026':138C '11':139C '2026':126C '4prq':15A,20A,358C 'accept':83B,248C 'access':323C 'acknowledg':361C 'address':275C 'ai':24B,160C 'ai-tool':23B 'allow':251C 'also':311C 'amazon':331C 'anoth':240C 'api':5A,29B,42B,91B,104C,116C,146C,253C,279C 'api-mcp-serv':278C 'applic':60B,77B,225C,241C 'assist':161C 'attack':88B 'attent':135C 'audienc':10A,109C,121C,314C,327C 'auth':307C,313C,316C 'authent':186C 'aw':4A,26B,28B,41B,90B,103C,115C,128C,130C,145C,165C,170C,252C 'aws-api-mcp-serv':27B 'aws-security@amazon.com':383C 'awslabs.aws':277C 'bearer':48B,189C 'bulletin':124C 'bypass':12A,111C,123C 'call':92B,254C 'cannot':336C 'carri':325C 'check':58B 'claim':222C,328C 'cli':171C 'client':317C 'code':297C 'cognito':332C 'collabor':371C 'command':172C 'concern':389C 'configur':96B,176C,261C 'content':131C 'context':154C 'coordin':377C 'credenti':95B,260C 'cve':1A,100C,112C,201C,353C 'date':137C 'default':342C 'deriv':296C 'descript':143C 'differ':76B 'disclosur':34B,379C 'elbar':368C 'email':382C 'enabl':159C 'ensur':292C 'expiri':54B,218C 'fix':304C 'fork':294C 'ghsa':14A,19A,357C 'ghsa-4prq-p2x5-w9fh':13A,18A,356C 'host':99B,264C 'http':39B,182C,350C 'id':125C,318C 'ident':72B,193C,236C,320C 'identifi':200C,223C 'immedi':338C 'impact':265C 'import':133C 'incorpor':301C 'interact':163C 'issu':64B,68B,229C,238C,272C,374C 'issuer':52B,216C 'lab':33B 'lab-disclosur':32B 'latest':289C 'let':86B 'like':364C 'made':257C 'make':89B 'may':85B,250C 'mcp':6A,30B,35B,43B,105C,117C,147C,156C,280C 'model':153C 'new':303C 'nomin':195C,235C 'oauth':8A,36B,47B,107C,119C,185C,309C 'open':151C 'oper':198C,305C,334C 'p2x5':16A,21A,359C 'patch':299C 'pdt':142C 'pleas':381C 'process':380C 'protocol':155C 'provid':73B,194C,237C,321C 'public':136C 'question':387C 'rather':345C 'recommend':285C 'refer':352C 'requir':134C 'resolut':270C 'resourc':168C 'scope':129C 'secur':386C 'serv':178C 'server':7A,31B,44B,106C,118C,148C,157C,210C,281C 'servic':166C 'set':312C 'signatur':51B,215C 'sourc':152C 'stdio':343C 'streamabl':38B,181C,349C 'streamable-http':37B,180C,348C 'tenant':81B,245C 'thank':366C 'therefor':247C 'token':9A,49B,62B,67B,108C,120C,190C,213C,227C,232C,324C 'tool':25B 'transport':183C,344C,351C 'type':132C,308C 'upgrad':286C,337C 'use':306C,340C 'valid':11A,45B,110C,122C,187C,211C 'version':205C,266C,282C,290C 'vulner':378C 'w9fh':17A,22A,360C 'whose':322C 'workaround':333C 'would':363C 'yuval':367C 'yuvalelbar6':369C","nicknames":[],"mitigations":[],"who_affected":"Only operators who run the AWS API MCP Server with the streamable-http transport and OAuth authentication are exposed, because only that configuration validates bearer tokens against an identity provider. The server must be on a version from 1.3.0 up to but not including 1.6.0. Teams on stdio transport, or on 1.6.0 or later, can skip it.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-27T00:00:00+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"lab","external_id":"https://aws.amazon.com/security/security-bulletins/rss/2026-152-aws/#GHSA-4prq-p2x5-w9fh","url":"https://aws.amazon.com/security/security-bulletins/rss/2026-152-aws/","severity":null,"published_at":"2026-10-27T00:00:00+00:00","modified_at":null,"first_seen_at":"2026-10-27T18:39:55+00:00","fetched_at":"2026-10-27T18:39:55+00:00","note":"AWS: CVE-2026-115413 - AWS API MCP Server OAuth token audience validation bypass"}],"documents":[{"id":7391,"url":"https://aws.amazon.com/security/security-bulletins/rss/2026-152-aws/","title":"AWS: CVE-2026-115413 - AWS API MCP Server OAuth token audience validation bypass","kind":"advisory","source":"lab","text":"CVE-2026-115413 - AWS API MCP Server OAuth token audience validation bypass\n\n### CVE-2026-115413 - AWS API MCP Server OAuth token audience validation bypass\n\nBulletin ID: 2026-152-AWS Scope: AWS Content Type: Important (requires attention) Publication Date: 10/27/2026 11:00 AM PDT\n\nDescription:\n\nThe 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 can be configured to serve the streamable-http transport with OAuth authentication, validating a bearer token against an identity provider nominated by the operator. We identified CVE-2026-115413 in versions >=1.3.0 and <1.6.0, the server validates a token's signature, issuer and expiry, but not the claim identifying the application the token was issued for. A token that the nominated identity provider issued to another application in the same tenant is therefore accepted, which may allow AWS API calls to be made with the credentials configured on the host.\n\nImpacted versions: >=1.3.0 AND <1.6.0\n\nResolution:\n\nThis issue has been addressed in awslabs.aws-api-mcp-server version 1.6.0. We recommend upgrading to the latest version and ensuring any forked or derivative code is patched to incorporate the new fixes. Operators using AUTH_TYPE=oauth should also set AUTH_AUDIENCE, or AUTH_CLIENT_ID for identity providers whose access tokens carry no audience claim, such as Amazon Cognito.\n\nWorkarounds:\n\nOperators who cannot upgrade immediately can use the default stdio transport rather than the streamable-http transport.\n\nReferences:\n\n- CVE-2026-115413\n- GHSA-4prq-p2x5-w9fh\n\nAcknowledgement:\n\nWe would like to thank Yuval Elbar (@YuvalElbar6) for collaborating on this issue through the coordinated vulnerability disclosure process.\n\n Please email aws-security@amazon.com with any security questions or concerns.","published_at":"2026-10-27T00:00:00+00:00","relation":"advisory","confidence":null,"note":null}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}