Skip to main content

Amazon SageMaker SDK EUVDEUVD-2026-107541

| CVE-2026-112408 CRITICAL
Improper Verification of Source of a Communication Channel (CWE-940)
2026-10-21 AMZN
9.4
CVSS 4.0 · Vendor: AMZN
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Predict target AWS account ID and region
  2. Delivery
    Pre-create predictably named default S3 bucket
  3. Exploit
    SDK default_bucket() uses bucket unvalidated
  4. Execution
    Execute attacker code in SageMaker environment
  5. Impact
    Exfiltrate IAM role credentials

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V12 - Secure Communication Communication channel verification
Exploitation Conditions

Exploitation requires the attacker to pre-create an S3 bucket whose name matches the SDK's predictable default (the sagemaker-prefixed region/account-ID pattern consumed by default_bucket()) BEFORE the victim's SDK first provisions it, and the victim must then invoke a SageMaker workflow that calls default_bucket() on the unpatched SDK (V2 < 2.257.3 or V3 < 3.10.0). This is the AT:P attack requirement: the attacker needs an AWS account and must know or predict the target's account ID and region, and must win the race before the victim already owns that bucket. Key LIMITING factors: if the target has already created its default bucket the attack fails (favoring first-time / newly-onboarded environments), success is unauthenticated against the target (PR:N) but gated on the pre-creation race, and only the two listed vulnerable SDK version ranges are affected - upgrading to 3.10.0 or 2.257.3 adds the missing bucket-ownership validation and remediates it.

Impact

The vendor-assigned CVSS 4.0 base score is 9.4 (Critical) with vector AV:N/AC:L/AT:P/PR:N/UI:N and high impact to confidentiality, integrity and availability of both the vulnerable system (VC:H/VI:H/VA:H) and a subsequent system (SC:H), consistent with remote code execution plus IAM credential theft reached without authentication or user interaction. The single most important nuance is AT:P (Attack Requirements: Present): exploitation is not a simple one-shot network request - it depends on a condition outside the attacker's control, namely that the attacker pre-creates the predictably named S3 bucket BEFORE the victim's SDK first provisions it, and that the victim then runs the vulnerable workflow. This materially tempers the raw 9.4: the flaw is a pre-positioning / namespace-squatting race rather than a wormable, broadly-automatable RCE, so realistic exploitation is more targeted and opportunistic than widespread. No EPSS score, SSVC decision, KEV listing, or public POC was provided in the input, so exploitation probability cannot be quantified and there is NO evidence of active exploitation. The reporter is the vendor itself (AMZN) with a coordinated GHSA advisory and AWS security bulletin, which raises confidence in the technical details but does not imply in-the-wild activity. Net assessment: a genuine high-priority issue for organizations running the affected SDK versions (patch promptly), but the AT:P race precondition means it is less of a mass-exploitation emergency than the 9.4 headline alone suggests.

Exploit ScenarioDerived

An attacker who can enumerate or guess a target's AWS account ID and region pre-creates an S3 bucket matching the SDK's predictable default naming pattern (e.g. sagemaker-{region}-{account-id}). When the victim later runs a SageMaker workflow, the vulnerable default_bucket() uses that attacker-owned bucket without verifying ownership, letting the attacker serve malicious artifacts/code that execute in the SageMaker execution environment and expose the attached IAM role credentials. No public exploit identified at time of analysis; the AV:N/AC:L vector makes the actions easy once the AT:P pre-creation condition is satisfied.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.7% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – Oct 21, 2026

Code execution inside the target SageMaker execution environment, together with disclosure of the execution role's IAM credentials, is reachable through the Amazon SageMaker Python SDK's default_bucket() helper, which provisions and then consumes an S3 bucket whose name is derived predictably from the account ID and region but never verifies who actually owns that bucket. The defect affects V3 releases before 3.10.0 and V2 releases before 2.257.3; a remote actor who registers that predictable bucket name in their own AWS account first can influence the artifacts, scripts and data the victim's training, processing and hosting jobs read and write, which the vendor scores 9.4 (Critical) under CVSS 4.0 and which our independent assessment rates CVSS 3.1 AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H because the attacker must win a bucket-name pre-creation race. No public exploit code has been identified at time of analysis and the issue is not listed in CISA KEV; exploitation favors newly onboarded or not-yet-provisioned environments, since targets that already own their default bucket are not exposed.

Earlier versions of this analysis (1)
v1 Oct 21, 2026 - 20:15 CVSS 8.1

Predictable S3 bucket naming in the Amazon SageMaker Python SDK lets an unauthenticated remote actor pre-create the bucket that the SDK's default_bucket() helper would otherwise provision, then receive the victim's uploads and serve back tampered artifacts. Affected are V3 releases before 3.10.0 and V2 releases before 2.257.3; exploitation requires the victim to rely on default bucket behavior (no explicit bucket configured) and the attacker to win a first-use race in S3's global namespace against a name derived from region and AWS account ID, which is why the vector is rated AC:H despite PR:N and full C/I/A impact. Successful abuse can yield code execution inside the SageMaker execution environment and disclosure of the execution role's IAM credentials; no public exploit code or confirmed active exploitation was identified at time of analysis, and vendor patches are available.

RemediationAI

Vendor-released patch: upgrade to Amazon SageMaker Python SDK 3.10.0 on the V3 line or 2.257.3 on the V2 line, which introduce the missing bucket-ownership validation in default_bucket(); install with pip install --upgrade sagemaker3.10.0 or pip install --upgrade sagemaker2.257.3 using the PyPI artifacts, and pin these minimums in every requirements file, container image and notebook kernel image that ships the SDK, since fixing only the developer laptop leaves SageMaker training and processing containers on the vulnerable code. Details are in the AWS bulletin https://aws.amazon.com/security/security-bulletins/2026-142-aws/ and advisory https://github.com/aws/sagemaker-python-sdk/security/advisories/GHSA-5rx8-8fr2-f855. Where an immediate upgrade is blocked, the effective compensating control is to pre-empt the race by pre-creating the sagemaker-prefixed default bucket yourself in each account and region the SDK will target, so the predictable name is already owned by the legitimate account and the SDK never adopts a foreign bucket; the trade-off is that this must be done per region and per account, and an attacker who squatted the name earlier still defeats it, so any existing default bucket should be inspected with GetBucketAcl/GetBucketLocation to confirm ownership before trusting it. A second workaround is to stop relying on the helper entirely - pass an explicit bucket argument to training, processing, model and session calls, or set a known-good default via the SDK session configuration - which removes the predictable-name dependency at the cost of code changes and a consistent configuration-management process across teams. Restricting which S3 buckets your SageMaker execution roles may read or write, for example with IAM policy conditions or an SCP limiting access to buckets in trusted accounts, lowers blast radius if a squatted bucket is used, but it will also break workflows that legitimately cross account boundaries and must be piloted before enforcement.

Affected VersionsENISA

Amazon SageMaker Python SDK 3.0.0 <3.10.0
Amazon SageMaker Python SDK 0 <2.257.3

Affected Packages

euvd amazon_sagemaker_python_sdk fix: 2.257.3, 3.10.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is CWE-940 (Improper Verification of Source of a Communication Channel) applied to Amazon S3, whose bucket namespace is globally unique across all AWS accounts and regions. The SageMaker Python SDK's default_bucket() follows a sagemaker-prefixed, region- and account-ID-derived naming convention and, when the computed bucket does not exist, creates it; critically, when a bucket with that name already exists it simply adopts it without a HeadBucket/GetBucketAcl ownership or account-ID check. Because the name is deterministic and the target account ID and region are often discoverable (from ARNs, console URLs, error messages, or partner integrations), an attacker operating any AWS account can squat the name ahead of time. Once the victim's workflow calls default_bucket() on an unpatched SDK, the SDK treats the attacker-controlled bucket as its own channel: training and processing jobs upload their source archives there, read entry-point scripts and model artifacts back from it, and the execution role's temporary IAM credentials become exposed to anything the attacker plants or reads - yielding code execution in the SageMaker execution environment and credential theft with a scope change into the subsequent AWS account. The affected surface is the SDK itself (CPE cpe:2.3:a:aws:amazon_sagemaker_python_sdk), distributed as the PyPI package sagemaker, and the only affected ranges are V3 before 3.10.0 and V2 before 2.257.3.

Know when Python gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (AMZN) PRIMARY 9.4 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:N/SA:N
vuln.today AI 9.0 CRITICAL

Attacker needs an AWS account but no target privileges (PR:N); success depends on pre-creating the predictable bucket and winning a race, mapping AT:P to AC:H, and RCE plus credential theft cross a trust boundary (S:C).

3.1 AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:N/SA:N

Primary rating from Vendor (AMZN).

CVSS VectorVendor: AMZN

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
High
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

4
Analysis Updated
Oct 21, 2026 - 20:43 vuln.today
v2 - CVSS changed
Severity Changed
Oct 21, 2026 - 20:39 NVD
HIGH CRITICAL
CVSS changed
Oct 21, 2026 - 20:39 NVD
8.1 (HIGH) 9.4 (CRITICAL)
CVE Published
Oct 21, 2026 - 19:36 cve.org
HIGH 8.1

DescriptionCVE.org

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).

Technical POC Analysis

CWE-940: Improper Verification of Source of a Communication Channel.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Amazon SageMaker Python SDK's default_bucket() helper exposes organizations using affected V3 releases before 3.10.0 and V2 releases before 2.257.3 to unauthenticated attackers who can pre-create predictable S3 bucket names, potentially enabling code execution in SageMaker execution environments and disclosure of IAM role credentials. Because an attacker could influence the artifacts, scripts, and data used by training, processing, and hosting jobs, leadership should treat this as a cloud-account and data-integrity risk, especially for newly onboarded accounts or regions; no public exploit identified at time of analysis and a vendor patch is available.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.7%
Top 47% exploitable
Prevalence
Medium
popular AWS ML library, scoped to SageMaker Python SDK users
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.7%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

48
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +47
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy