Skip to content
firewallpulse
Bits, bytes and breaking security news
Vulnerabilities

SageMaker SDK Bucket Ownership Gap Risks Credential Theft and Code Execution

Attackers can execute code and steal credentials by creating predictably named buckets that the SDK uses without ownership checks.

Illustration: A blank white laptop sits on a desk, its screen displaying a simplified browser window with a single generic blue button.
AI-generated illustration: Firewall Pulse

Key points

  • CVE-2026-112408 affects SageMaker Python SDK versions prior to 3.10.0 and 2.257.3
  • The default_bucket function fails to verify the AWS account owner of the storage resource
  • AWS released patches for both V2 and V3 library branches on 21 October 2026

Amazon SageMaker Python SDK users face remote code execution risks because the library does not validate ownership of its default Amazon S3 bucket. This missing verification allows attackers to pre-create a bucket with the expected name, hijacking the communication channel that the SDK trusts implicitly.

Root cause

The issue stems from the default_bucket function failing to verify the source of the communication channel, a weakness classified as CWE-940. The SDK assumes the predictably named bucket belongs to the caller's AWS account without performing an ownership check, creating a trust boundary violation in the data handling logic.

Attack path

A remote actor creates the specific S3 bucket name before the legitimate application initializes. When the vulnerable SDK connects to this bucket, it executes code within the target SageMaker environment. This access allows the attacker to obtain IAM credentials associated with that execution environment, compromising the workload.

Affected versions

  • Amazon SageMaker Python SDK V2 before version 2.257.3
  • Amazon SageMaker Python SDK V3 version 3.0.0 and later, before 3.10.0

Mitigation

  • Upgrade to Amazon SageMaker Python SDK version 3.10.0 or 2.257.3 immediately
  • Ensure any forked or derivative code incorporates the official security fixes
  • Pass an explicitly owned S3 bucket via the default_bucket parameter if patching is delayed
  • Avoid relying on auto-generated default bucket names in unpatched configurations

Signals worth monitoring

Teams usually review CloudTrail logs for unusual S3 bucket creation events matching known SDK naming patterns. Security operations should monitor for unexpected outbound connections from SageMaker instances to external storage endpoints. Checking for anomalous IAM credential usage or privilege escalation attempts helps identify compromised execution environments. Initial containment involves isolating affected instances and rotating exposed keys.

Background: Privilege escalation attacks

Prevent privilege escalation by enforcing least privilege, auditing service accounts, and validating file permissions. Secure temporary directories, restrict kernel module loading, and monitor for unexpected process creations. Regularly review group memberships and disable unused administrative roles to close common attack vectors before they are exploited.

Read the full guide: Privilege Escalation Attack Prevention Checklist for Secure Systems

What to do and how to stay safe: Amazon SageMaker

  • Audit SageMaker deployments for usage of the Python SDK and identify versions below the safe threshold
  • Review S3 bucket creation logs for names that match the predictable pattern used by the library
  • Enforce explicit bucket configuration in application code to bypass the vulnerable default function
  • Monitor for unauthorized code execution or credential access in SageMaker execution environments until patched

Step-by-step guide: Out-of-band patches: what small businesses need to know

General security guidance from the Firewall Pulse newsroom. It is not confirmed advice from the organisations named in this story.

Frequently asked questions

What is the CVSS score for CVE-2026-112408?

The National Vulnerability Database rates CVE-2026-112408 as HIGH with a CVSS score of 8.1.

Who discovered this vulnerability?

Dan Gansel from Upwind Security identified the issue and collaborated with AWS through the coordinated disclosure process.

Can I mitigate this without upgrading the SDK?

Yes, you can pass an S3 bucket your account owns explicitly through the default_bucket parameter of sagemaker.Session or the configuration file.

Sources

  1. CVE Program
  2. AWS Security Bulletins
Amazon SageMakerAWSCVE-2026-112408Python SDKS3

Related stories