{"id":"CVE-2026-94384","kind":"vulnerability","aliases":["CVE-2026-94384"],"related":[],"title":"AWS Connect Salesforce Lambda: missing authorization lets IAM principals bypass their permissions","description":"CVE-2026-94384 - Missing Authorization in AmazonConnectSalesforceLambda sfExecuteAWSService\n\n### CVE-2026-94384 - Missing Authorization in AmazonConnectSalesforceLambda sfExecuteAWSService\n\nBulletin ID: 2026-115-AWS Scope: AWS Content Type: Important (requires attention) Publication Date: 09/22/2026 10:00 AM PDT\n\nDescription:\n\nAmazon Connect Salesforce Lambda (AmazonConnectSalesforceLambda) is a Serverless Application Repository application that provides Lambda functions for integrating Amazon Connect with Salesforce. We identified CVE-2026-94384, a missing authorization issue in the sfExecuteAWSService Lambda function, which is used only during initial setup. The function dispatches caller-supplied parameters to privileged AWS service APIs without validating the caller's authorization. As a result, an IAM principal with lambda:InvokeFunction permission on the function can perform AWS operations that their own IAM permissions would otherwise deny.\n\nImpacted versions: >= 5.15 AND <= 5.24.16\n\nResolution:\n\nTo remediate this issue, upgrade to AmazonConnectSalesforceLambda version 5.26 or later. After setup is complete, either delete or disable the sfExecuteAWSService function. If you keep the function, restrict who can invoke it: within your account, grant lambda:InvokeFunction on the function only to the single IAM user the CTI Adapter uses to call it and to no other principal (for stronger enforcement, deny it for all other principals using a service control policy or permission boundary); and set the SalesforceExecuteAWSServiceUser parameter to that same IAM user so that cross-account invocation is limited to it.\n\nVerification:\n\nConfirm the sfExecuteAWSService function has been deleted or disabled after setup. If you keep the function, confirm that within your account lambda:InvokeFunction on the function is granted only to the CTI Adapter's IAM user, and that the SalesforceExecuteAWSServiceUser parameter names that same user.\n\nReferences:\n\n- CVE-2026-94384\n- GHSA-c9j2-qjfv-mm4p\n\nAcknowledgement:\n\nWe would like to thank Chang Li of Xidian University 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 sfExecuteAWSService Lambda function in Amazon Connect Salesforce Lambda, used during initial setup, passes caller-supplied parameters to privileged AWS APIs without checking authorization. Any IAM principal with lambda:InvokeFunction on that function can perform AWS operations their own IAM permissions would deny.","severity":"high","cvss":8.1,"epss":0.00317,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["amazon-connect","aws","aws-lambda","lab-disclosure","salesforce","serverless-application-repository","vendor"],"not_affected_if":["function-deleted-or-disabled","version-5.26-or-later"],"how_to_check":"- Check the installed AmazonConnectSalesforceLambda version in the Serverless Application Repository deployment; affected versions are `>= 5.15` and `<= 5.24.16`\n- Confirm whether the `sfExecuteAWSService` function still exists in the account and who holds `lambda:InvokeFunction` on it\n- Check whether the `SalesforceExecuteAWSServiceUser` parameter is set","fix":"- Upgrade AmazonConnectSalesforceLambda to `5.26` or later\n- Delete or disable the `sfExecuteAWSService` function after setup is complete\n- If the function is kept, grant `lambda:InvokeFunction` only to the CTI Adapter's IAM user and set `SalesforceExecuteAWSServiceUser` to that same user; optionally deny it to all other principals with a service control policy or permission boundary","status":"open","published_at":"2026-09-22T00:00:00+00:00","first_seen_at":"2026-10-24T19:43:42+00:00","triaged_at":"2026-10-25T05:29:46+00:00","updated_at":"2026-10-25T12:38:49+00:00","category":"vendor","confidence":0.8,"triage":{"at":"2026-10-25T05:29:46Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade AmazonConnectSalesforceLambda to `5.26` or later\n- Delete or disable the `sfExecuteAWSService` function after setup is complete\n- If the function is kept, grant `lambda:InvokeFunction` only to the CTI Adapter's IAM user and set `SalesforceExecuteAWSServiceUser` to that same user; optionally deny it to all other principals with a service control policy or permission boundary","reach":"network","title":"AWS Connect Salesforce Lambda: missing authorization lets IAM principals bypass their permissions","impact":"high","summary":"The sfExecuteAWSService Lambda function in Amazon Connect Salesforce Lambda, used during initial setup, passes caller-supplied parameters to privileged AWS APIs without checking authorization. Any IAM principal with lambda:InvokeFunction on that function can perform AWS operations their own IAM permissions would deny.","category":"vendor","nicknames":[],"who_cares":["amazon-connect","salesforce","aws-lambda","serverless-application-repository"],"confidence":0.8,"needs_auth":"yes","worst_case":"Attacker performs AWS operations beyond their own IAM permissions via the function","analyst_note":"","how_to_check":"- Check the installed AmazonConnectSalesforceLambda version in the Serverless Application Repository deployment; affected versions are `>= 5.15` and `<= 5.24.16`\n- Confirm whether the `sfExecuteAWSService` function still exists in the account and who holds `lambda:InvokeFunction` on it\n- Check whether the `SalesforceExecuteAWSServiceUser` parameter is set","needs_analyst":false,"not_affected_if":["version-5.26-or-later","function-deleted-or-disabled"],"who_is_affected":"Teams that deployed Amazon Connect Salesforce Lambda from the Serverless Application Repository with versions 5.15 through 5.24.16 are exposed, as long as the sfExecuteAWSService function remains in the account. Exposure depends on which IAM principals can invoke that function, so accounts that already restrict invocation to the CTI Adapter user are at lower risk. Teams on 5.26 or later, or that deleted the function after setup, can skip it.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.000824,"input_tokens":4141,"output_tokens":819,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-115':98C '-2026':14A,17A,80C,88C,139C,350C '-94384':15A,18A,81C,89C,140C,351C '00':111C '09/22/2026':109C '10':110C '2026':97C '5.15':202C '5.24.16':204C '5.26':214C 'account':240C,296C,323C 'acknowledg':357C 'adapt':255C,335C 'amazon':20B,40B,115C,132C 'amazon-connect':19B 'amazonconnectsalesforcelambda':85C,93C,119C,212C 'api':56B,168C 'applic':32B,123C,125C 'attent':106C 'author':6A,59B,83C,91C,143C,174C 'aw':1A,22B,24B,55B,71B,99C,101C,166C,190C 'aws-lambda':23B 'aws-security@amazon.com':381C 'boundari':281C 'bulletin':95C 'bypass':10A 'c9j2':354C 'call':258C 'caller':50B,161C,172C 'caller-suppli':49B,160C 'chang':363C 'check':58B 'collabor':369C 'complet':220C 'concern':387C 'confirm':303C,319C 'connect':2A,21B,41B,116C,133C 'content':102C 'control':277C 'coordin':375C 'cross':295C 'cross-account':294C 'cti':254C,334C 'cve':13A,16A,79C,87C,138C,349C 'date':108C 'delet':222C,309C 'deni':78B,199C,268C 'descript':114C 'disabl':224C,311C 'disclosur':28B,377C 'dispatch':159C 'either':221C 'email':380C 'enforc':267C 'function':38B,68B,129C,149C,158C,187C,227C,232C,246C,306C,318C,328C 'ghsa':353C 'ghsa-c9j2-qjfv-mm4p':352C 'grant':241C,330C 'iam':8A,61B,75B,179C,195C,251C,290C,337C 'id':96C 'identifi':137C 'impact':200C 'import':104C 'initi':46B,155C 'integr':131C 'invoc':297C 'invok':236C 'invokefunct':65B,183C,243C,325C 'issu':144C,209C,372C 'keep':230C,316C 'lab':27B 'lab-disclosur':26B 'lambda':4A,25B,37B,43B,64B,118C,128C,148C,182C,242C,324C 'later':216C 'let':7A 'li':364C 'like':360C 'limit':299C 'miss':5A,82C,90C,142C 'mm4p':356C 'name':344C 'oper':72B,191C 'otherwis':198C 'paramet':52B,163C,286C,343C 'pass':48B 'pdt':113C 'perform':70B,189C 'permiss':12A,76B,184C,196C,280C 'pleas':379C 'polici':278C 'princip':9A,62B,180C,264C,273C 'privileg':54B,165C 'process':378C 'provid':127C 'public':107C 'qjfv':355C 'question':385C 'refer':348C 'remedi':207C 'repositori':33B,124C 'requir':105C 'resolut':205C 'restrict':233C 'result':177C 'salesforc':3A,29B,42B,117C,135C 'salesforceexecuteawsserviceus':285C,342C 'scope':100C 'secur':384C 'serverless':31B,122C 'serverless-application-repositori':30B 'servic':167C,276C 'set':283C 'setup':47B,156C,218C,313C 'sfexecuteawsservic':36B,86C,94C,147C,226C,305C 'singl':250C 'stronger':266C 'suppli':51B,162C 'thank':362C 'type':103C 'univers':367C 'upgrad':210C 'use':44B,152C,256C,274C 'user':252C,291C,338C,347C 'valid':170C 'vendor':34B 'verif':302C 'version':201C,213C 'vulner':376C 'within':238C,321C 'without':57B,169C 'would':77B,197C,359C 'xidian':366C","nicknames":[],"mitigations":[],"who_affected":"Teams that deployed Amazon Connect Salesforce Lambda from the Serverless Application Repository with versions 5.15 through 5.24.16 are exposed, as long as the sfExecuteAWSService function remains in the account. Exposure depends on which IAM principals can invoke that function, so accounts that already restrict invocation to the CTI Adapter user are at lower risk. Teams on 5.26 or later, or that deleted the function after setup, can skip it.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-09-22T00:00:00+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:H/SI:H/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"ff89ba41-3aa1-4d27-914a-91399e9639e5","poc_count":0,"sources":[{"source":"lab","external_id":"https://aws.amazon.com/security/security-bulletins/rss/2026-115-aws/#CVE-2026-94384","url":"https://aws.amazon.com/security/security-bulletins/rss/2026-115-aws/","severity":null,"published_at":"2026-09-22T00:00:00+00:00","modified_at":null,"first_seen_at":"2026-10-24T19:43:42+00:00","fetched_at":"2026-10-24T19:43:42+00:00","note":"AWS: CVE-2026-94384 - Missing Authorization in AmazonConnectSalesforceLambda sfExecuteAWSService"},{"source":"nvd","external_id":"CVE-2026-94384","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-94384","severity":null,"published_at":"2026-09-22T18:17:32+00:00","modified_at":"2026-09-22T19:16:59+00:00","first_seen_at":"2026-10-24T20:15:27+00:00","fetched_at":"2026-10-24T20:15:27+00:00","note":null},{"source":"epss","external_id":"CVE-2026-94384","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-94384","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-25T12:38:49+00:00","fetched_at":"2026-10-25T12:38:49+00:00","note":null}],"documents":[{"id":2960,"url":"https://aws.amazon.com/security/security-bulletins/rss/2026-115-aws/","title":"AWS: CVE-2026-94384 - Missing Authorization in AmazonConnectSalesforceLambda sfExecuteAWSService","kind":"advisory","source":"lab","text":"CVE-2026-94384 - Missing Authorization in AmazonConnectSalesforceLambda sfExecuteAWSService\n\n### CVE-2026-94384 - Missing Authorization in AmazonConnectSalesforceLambda sfExecuteAWSService\n\nBulletin ID: 2026-115-AWS Scope: AWS Content Type: Important (requires attention) Publication Date: 09/22/2026 10:00 AM PDT\n\nDescription:\n\nAmazon Connect Salesforce Lambda (AmazonConnectSalesforceLambda) is a Serverless Application Repository application that provides Lambda functions for integrating Amazon Connect with Salesforce. We identified CVE-2026-94384, a missing authorization issue in the sfExecuteAWSService Lambda function, which is used only during initial setup. The function dispatches caller-supplied parameters to privileged AWS service APIs without validating the caller's authorization. As a result, an IAM principal with lambda:InvokeFunction permission on the function can perform AWS operations that their own IAM permissions would otherwise deny.\n\nImpacted versions: >= 5.15 AND <= 5.24.16\n\nResolution:\n\nTo remediate this issue, upgrade to AmazonConnectSalesforceLambda version 5.26 or later. After setup is complete, either delete or disable the sfExecuteAWSService function. If you keep the function, restrict who can invoke it: within your account, grant lambda:InvokeFunction on the function only to the single IAM user the CTI Adapter uses to call it and to no other principal (for stronger enforcement, deny it for all other principals using a service control policy or permission boundary); and set the SalesforceExecuteAWSServiceUser parameter to that same IAM user so that cross-account invocation is limited to it.\n\nVerification:\n\nConfirm the sfExecuteAWSService function has been deleted or disabled after setup. If you keep the function, confirm that within your account lambda:InvokeFunction on the function is granted only to the CTI Adapter's IAM user, and that the SalesforceExecuteAWSServiceUser parameter names that same user.\n\nReferences:\n\n- CVE-2026-94384\n- GHSA-c9j2-qjfv-mm4p\n\nAcknowledgement:\n\nWe would like to thank Chang Li of Xidian University 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-09-22T00: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"}