CVE-2026-112408: SageMaker SDK: S3 bucket squatting enables RCE
HIGHThe Amazon SageMaker Python SDK's default_bucket() function uses a predictably named S3 bucket without verifying who owns it, so an attacker who pre-creates that bucket can feed malicious content into SageMaker workloads and achieve code execution in the execution environment, exposing IAM credentials. The CVSS score is 8.1 (High) and is held down by high attack complexity because the attacker must anticipate the bucket name and win the race to create it. No EPSS score, public exploit, Nuclei template or CISA KEV listing exists yet, so there is no evidence of active exploitation, but the technique is well understood and low-cost. Because the stolen IAM role often has broad access to training data, model artifacts and other AWS services, the blast radius extends well beyond the notebook or job. Upgrade to SDK 3.10.0 (V3) or 2.257.3 (V2), and in the meantime set explicit, organization-owned S3 buckets instead of relying on default_bucket().
What is the risk?
High. Impact is full confidentiality, integrity and availability loss within the SageMaker execution environment, including IAM credential theft. Exploitation requires no privileges and no user interaction over the network, but needs high complexity: the attacker must predict the bucket name and register it before the legitimate account does. No public exploit, scanner template, EPSS data or KEV listing is available, so near-term likelihood is moderate. Organizations that have never created the default bucket in a given region, or that use new accounts and regions, are the most exposed.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| SageMaker | pip | — | No patch |
Do you use SageMaker? You're affected.
How severe is it?
What is the attack surface?
What should I do?
1 step1) Upgrade the sagemaker package to 3.10.0 (V3) or 2.257.3 (V2) in notebooks, CI/CD runners, containers and pipelines. 2) Until patched, pass explicitly named, organization-owned buckets (default_bucket parameter or session configuration) and verify ownership with the expected bucket owner account ID. 3) Pre-create the default-named bucket in every account and region in use, and enable S3 Block Public Access. 4) Apply least-privilege to SageMaker execution roles and restrict S3 access with bucket ownership conditions such as aws:ResourceAccount. 5) Detect: review CloudTrail for CreateBucket events and for S3 access to sagemaker-* buckets owned by foreign accounts, and audit existing default buckets for unexpected ownership or contents. 6) Rotate IAM credentials and inspect model artifacts if a foreign-owned bucket is found.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-112408?
The Amazon SageMaker Python SDK's default_bucket() function uses a predictably named S3 bucket without verifying who owns it, so an attacker who pre-creates that bucket can feed malicious content into SageMaker workloads and achieve code execution in the execution environment, exposing IAM credentials. The CVSS score is 8.1 (High) and is held down by high attack complexity because the attacker must anticipate the bucket name and win the race to create it. No EPSS score, public exploit, Nuclei template or CISA KEV listing exists yet, so there is no evidence of active exploitation, but the technique is well understood and low-cost. Because the stolen IAM role often has broad access to training data, model artifacts and other AWS services, the blast radius extends well beyond the notebook or job. Upgrade to SDK 3.10.0 (V3) or 2.257.3 (V2), and in the meantime set explicit, organization-owned S3 buckets instead of relying on default_bucket().
Is CVE-2026-112408 actively exploited?
No confirmed active exploitation of CVE-2026-112408 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-112408?
1) Upgrade the sagemaker package to 3.10.0 (V3) or 2.257.3 (V2) in notebooks, CI/CD runners, containers and pipelines. 2) Until patched, pass explicitly named, organization-owned buckets (default_bucket parameter or session configuration) and verify ownership with the expected bucket owner account ID. 3) Pre-create the default-named bucket in every account and region in use, and enable S3 Block Public Access. 4) Apply least-privilege to SageMaker execution roles and restrict S3 access with bucket ownership conditions such as aws:ResourceAccount. 5) Detect: review CloudTrail for CreateBucket events and for S3 access to sagemaker-* buckets owned by foreign accounts, and audit existing default buckets for unexpected ownership or contents. 6) Rotate IAM credentials and inspect model artifacts if a foreign-owned bucket is found.
What systems are affected by CVE-2026-112408?
This vulnerability affects the following AI/ML architecture patterns: Training pipelines, Model serving, MLOps pipelines, Managed notebook environments, CI/CD for ML.
What is the CVSS score for CVE-2026-112408?
CVE-2026-112408 has a CVSS v3.1 base score of 8.1 (HIGH). The EPSS exploitation probability is 0.74%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0010.001AI SoftwareAML.T0018.002Embed MalwareAML.T0055Unsecured CredentialsAML.T0106Exploitation for Credential AccessCompliance Controls Affected
What are the technical details?
Original Advisory
Missing verification of source of a communication channel in the default_bucket() function in Amazon SageMaker Python SDK V3 before 3.10.0 and V2 before 2.257.3 might allow remote actors to achieve code execution in the target SageMaker execution environment and obtain IAM credentials via pre-creation of a predictably named S3 bucket that the SDK uses without ownership validation. To remediate this issue, users should upgrade to Amazon SageMaker Python SDK 3.10.0 (V3) or 2.257.3 (V2).
Exploitation Scenario
An attacker determines the naming pattern of the SDK default bucket, which is derived from predictable values such as region and account ID, and creates that bucket in their own AWS account before the victim does, configuring permissive access for the victim's role. When the victim's data scientist or pipeline calls default_bucket(), the SDK uses the attacker's bucket without validating ownership and uploads training code and artifacts. The attacker swaps the uploaded code or model artifact for a malicious payload, which the SageMaker job executes. The payload runs inside the execution environment and exfiltrates the role's IAM credentials, giving the attacker access to the victim's data, models and other AWS resources.
Weaknesses (CWE)
CWE-940Improper Verification of Source of a Communication ChannelCWE-940Improper Verification of Source of a Communication ChannelCWE-940 — Improper Verification of Source of a Communication Channel: The product establishes a communication channel to handle an incoming request that has been initiated by an actor, but it does not properly verify that the request is coming from the expected origin.
- [Architecture and Design] Use a mechanism that can validate the identity of the source, such as a certificate, and validate the integrity of data to ensure that it cannot be modified in transit using an Adversary-in-the-Middle (AITM) attack. When designing functionality of actions in the URL scheme, consider whether the action should be accessible to all mobile applications, or if an allowlist of applications to interface with is appropriate.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:HReferences
- aws.amazon.com/security/security-bulletins/2026-142-aws/
- github.com/aws/sagemaker-python-sdk/releases/tag/v2.257.3
- github.com/aws/sagemaker-python-sdk/releases/tag/v3.10.0
- github.com/aws/sagemaker-python-sdk/security/advisories/GHSA-5rx8-8fr2-f855
- pypi.org/project/sagemaker/2.257.3/
- pypi.org/project/sagemaker/3.10.0/
Timeline
Related Vulnerabilities
CVE-2026-1040199.0SageMaker Distribution: OS command injection exposes IAM creds
Same package: sagemakerCVE-2026-835517.2SageMaker: HMAC leak allows forged pipeline code execution
Same package: sagemakerCVE-2026-85977.2SageMaker: RCE via poisoned Triton model artifacts in S3
Same package: sagemakerCVE-2026-17777.2sagemaker: security flaw enables exploitation
Same package: sagemakerCVE-2026-85967.2SageMaker SDK: cleartext HMAC key enables model artifact RCE
Same package: sagemaker