CVE-2026-87912: Missing S3 bucket ownership verification in the AWS Security Agent plugin for aws-agents-for-devsecops
A missing S3 bucket ownership verification in the AWS Security Agent plugin in Amazon aws-agents-for-devsecops before 1.1.0 might allow remote attackers to obtain the private source archive of a scanned workspace, including credentials and infrastructure state contained in that archive, via a pre-registered storage bucket whose name is derived from a publicly known account identifier.
To remediate this issue, users should upgrade to version 1.1.0. Users should also verify that the scan output bucket in their account is owned by their own account, because upgrading does not release a bucket name that a third party has already registered.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Amazon aws-agents-for-devsecops (AWS Security Agent plugin)to a version that resolves this vulnerability.Fixed in 1.1.0 - Compensating control
Verify that the scan output bucket in your account is owned by your own account (upgrading to 1.1.0 does not release a bucket name already registered by a third party).
Event History
Frequently Asked Questions
Which deployments are exposed to source archive disclosure?
Deployments using the AWS Security Agent plugin in aws-agents-for-devsecops before version 1.1.0 are affected when the scan output bucket name can be pre-registered by a third party. The exposed archive may contain credentials and infrastructure state.
What does an attacker need to exploit this issue?
An attacker needs to have pre-registered the storage bucket whose name is derived from the publicly known account identifier. Exploitation also requires user interaction, as reflected in the supplied CVSS vector.
Does upgrading remove an attacker-controlled bucket that already exists?
No. Upgrading to version 1.1.0 does not release a bucket name that a third party has already registered.
What should be checked after upgrading?
Verify that the scan output bucket in the account is owned by that account. This is necessary because an already registered third-party bucket name remains in place after the upgrade.