CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-8596

CVE-2026-8596: Remote Code Execution via Cleartext HMAC Key in Amazon SageMaker Python SDK

Alon Barad
Alon Barad
Software Engineer

May 21, 2026·6 min read·7 visits

Executive Summary (TL;DR)

SageMaker Python SDK leaked symmetric HMAC keys in job environment variables, allowing attackers to forge signatures and achieve RCE via malicious model artifacts.

The Amazon SageMaker Python SDK is vulnerable to arbitrary code execution due to the cleartext storage of a symmetric HMAC signing key in job environment variables. An authenticated attacker with `Describe` permissions can extract this key to forge valid integrity signatures for malicious model artifacts.

Vulnerability Overview

The Amazon SageMaker Python SDK facilitates the development, training, and deployment of machine learning models on AWS. The SDK includes a "Remote Function" capability that allows developers to serialize Python functions using the cloudpickle library and upload them to Amazon S3 for execution in remote inference containers.

CVE-2026-8596 identifies a critical design flaw within this Remote Function implementation. The SDK utilizes cryptographic signatures to verify the integrity of serialized objects before deserialization, preventing the execution of tampered payloads.

In vulnerable versions, the SDK implements this integrity check using a symmetric HMAC-SHA256 key. The SDK stores this key in cleartext within the environment variables of the remote execution container.

Because these environment variables are accessible via the SageMaker Describe APIs, the design violates CWE-312 (Cleartext Storage of Sensitive Information). An authenticated attacker can extract the key, bypass the integrity mechanism, and achieve object injection.

Root Cause Analysis

The root cause of CVE-2026-8596 is the architectural decision to distribute symmetric cryptographic material through observable infrastructure configurations. When a user creates a Remote Function, the client SDK generates an HMAC-SHA256 secret key.

The SDK transmits this key to the target SageMaker job by injecting it into the REMOTE_FUNCTION_SECRET_KEY environment variable. The system design assumes the environment variable remains confined to the execution boundary of the inference container.

This assumption is fundamentally flawed in the context of the AWS control plane. The DescribeTrainingJob and related SageMaker APIs return the complete job configuration upon request, including the user-defined environment variables.

Any IAM principal possessing the sagemaker:DescribeTrainingJob permission can retrieve the exact symmetric key used to secure the payload. Since the key is symmetric, possessing it grants the attacker both validation and signing capabilities.

Code Analysis and Patch Walkthrough

The vulnerability stems from the use of symmetric HMAC operations where asymmetric cryptography is required for the trust model. The client SDK originally generated a random secret, packed it into the environment, and calculated an HMAC over the serialized cloudpickle object.

The remote container retrieved the secret via os.environ.get("REMOTE_FUNCTION_SECRET_KEY") and performed an identical HMAC calculation to verify data integrity. The fix implemented in Pull Request #5708 replaces this mechanism entirely with ECDSA P-256 signatures.

The patched client SDK now generates an asymmetric key pair. The private key remains locally in memory on the client system and signs the serialized object payload.

The SDK passes only the public key component to the remote environment via the environment variable. The following code snippet demonstrates the updated verification logic in serialization.py where the container utilizes the public key to validate the signature:

def _verify_asymmetric_signature(metadata: _MetaData, buffer: bytes, public_key_pem: str):
    # Verification using ECDSA and the public key provided in metadata
    signature_bytes = base64.b64decode(metadata.asymmetric_signature)
    public_key = crypto_serialization.load_pem_public_key(public_key_pem.encode())
    public_key.verify(signature_bytes, buffer, ec.ECDSA(hashes.SHA256()))

By transitioning to ECDSA, the patch eliminates the exposure of signing capabilities. Even if an attacker reads the REMOTE_FUNCTION_SECRET_KEY environment variable, they obtain only the public key, rendering them unable to forge valid signatures for malicious payloads.

Exploitation Methodology

Exploitation of CVE-2026-8596 requires a specific combination of IAM permissions. The attacker must hold authorization to call Describe APIs on SageMaker jobs and write access to the specific Amazon S3 bucket storing the model artifacts.

The attack sequence begins with the adversary targeting an active or historical SageMaker job. The attacker issues a DescribeTrainingJob API request to the AWS control plane to extract the REMOTE_FUNCTION_SECRET_KEY from the job's environment variables.

Upon obtaining the symmetric key, the attacker constructs a malicious Python payload designed to execute arbitrary operating system commands. The attacker compiles this payload into a serialized object using the cloudpickle library.

The attacker signs the malicious object using the stolen HMAC-SHA256 key and updates the corresponding metadata.json file. Finally, the attacker overwrites the legitimate model artifacts in S3 using the s3:PutObject operation.

When the SageMaker inference container initializes or processes a new task, it downloads the tampered payload. The container validates the forged signature, determines the payload is authentic, and deserializes the object, granting the attacker arbitrary code execution.

Impact Assessment

The exploitation of CVE-2026-8596 leads directly to unauthenticated remote code execution within the context of the SageMaker inference container. Deserialization of untrusted cloudpickle data inherently allows the execution of arbitrary Python bytecode or system commands.

This execution occurs with the privileges of the SageMaker container process. An attacker leverages this position to access any IAM credentials attached to the SageMaker execution role, allowing privilege escalation horizontally or vertically within the AWS environment.

The attacker also gains unauthorized access to proprietary machine learning models, training data, and any interconnected database credentials present in the execution environment. The ability to intercept and modify inference results severely compromises data integrity.

The CVSS v3.1 base score of 7.2 accurately reflects the high confidentiality, integrity, and availability impacts. The requirement for specific IAM permissions correctly limits the attack vector, preventing anonymous exploitation over the open internet.

Remediation and Mitigation

The primary remediation for CVE-2026-8596 is upgrading the Amazon SageMaker Python SDK to a patched version. AWS addressed the vulnerability in SDK v2 series version 2.257.2 and v3 series version 3.8.0.

Patching the client SDK prevents the creation of new vulnerable jobs. Organizations must also systematically rebuild and redeploy any existing models or remote functions created with older, vulnerable versions of the SDK.

Rebuilding ensures the SDK utilizes the new ECDSA asymmetric key process for the entire lifecycle of the model artifact. AWS provides the ModelBuilder tool within the SDK to facilitate this redevelopment process.

Organizations enforce proactive security through AWS IAM policy audits as a defense-in-depth measure. Administrators restrict sagemaker:DescribeTrainingJob and s3:PutObject permissions strictly to the principals requiring them for functional operations.

Official Patches

AWSAWS Security Bulletin (2026-031-aws)
AWSFix PR #5708

Technical Appendix

CVSS Score
7.2/ 10
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
EPSS Probability
0.10%
Top 73% most exploited

Affected Systems

Amazon SageMaker Python SDK ModelBuilder componentAmazon SageMaker Python SDK Serve componentAWS SageMaker Inference Containers

Affected Versions Detail

Product
Affected Versions
Fixed Version
Amazon SageMaker Python SDK (v2)
AWS
>= 2.199.0, < 2.257.22.257.2
Amazon SageMaker Python SDK (v3)
AWS
>= 3.0.0, < 3.8.03.8.0
AttributeDetail
CWE IDCWE-312
Attack VectorNetwork
CVSS Score7.2 (High)
EPSS Score0.10%
ImpactArbitrary Code Execution
Exploit StatusProof of Concept
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1552Unsecured Credentials
Credential Access
CWE-312
Cleartext Storage of Sensitive Information

The application stores sensitive information in cleartext in a location accessible to unauthorized actors or via unintended API responses.

Vulnerability Timeline

Vulnerability disclosed and AWS Security Bulletin published
2026-05-14
Patch released in v2.257.2 and v3.8.0
2026-05-14
NVD and CVE.org records updated
2026-05-15

References & Sources

  • [1]AWS Security Bulletin
  • [2]GitHub Advisory: GHSA-7hh5-prp2-mfh5
  • [3]v2 Release Notes
  • [4]v3 Release Notes
  • [5]Fix PR #5708

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 2 hours ago•CVE-2024-29203
4.3

CVE-2024-29203: Client-Side Cross-Site Scripting via Unsandboxed Iframes and Legacy Embed Elements in TinyMCE

CVE-2024-29203 identifies a cross-site scripting (XSS) vulnerability in the content ingestion and parsing mechanics of TinyMCE rich text editor. Due to a failure to enforce sandbox attributes on dynamic iframe elements and safely handle legacy embed objects, unauthenticated attackers can inject malicious elements that execute scripts within the context of the parent application session.

Amit Schendel
Amit Schendel
5 views•5 min read
•about 4 hours ago•CVE-2026-9277
8.1

CVE-2026-9277: OS Command Injection in shell-quote via Object-Token Line Terminator Parsing Defect

A technical breakdown of the OS command injection vulnerability in the shell-quote NPM package (CVE-2026-9277 / GHSA-w7jw-789q-3m8p). The bug resides in the character-by-character backslash-escaping logic applied to the .op field of object-tokens within the quote() function, which fails to match and escape line terminators due to a regex matching oversight in JavaScript. This allows unauthenticated remote attackers to execute arbitrary shell commands if they can control inputs processed by this library.

Alon Barad
Alon Barad
7 views•6 min read
•about 5 hours ago•CVE-2026-11645
8.8

CVE-2026-11645: Out-of-Bounds Memory Access in Google Chrome V8 Engine

A high-severity memory corruption vulnerability exists in the V8 JavaScript engine of Google Chrome before versions 149.0.7827.102/103. The flaw arises from an incorrect bounds-check elimination during JIT compilation by the TurboFan optimizer, allowing remote attackers to achieve out-of-bounds read and write access inside the sandboxed renderer process.

Amit Schendel
Amit Schendel
21 views•6 min read
•about 14 hours ago•CVE-2026-50751
9.3

CVE-2026-50751: Authentication Bypass in Check Point Security Gateway IKEv1 Legacy Validation

An improper authentication vulnerability (CWE-287) exists in the legacy, deprecated Internet Key Exchange version 1 (IKEv1) key exchange protocol implementation in Check Point Security Gateways. The vulnerability is caused by a logic flow weakness during the certificate validation process for Remote Access VPN and Mobile Access (SSL VPN) connections. An unauthenticated remote attacker can exploit this weakness to bypass user authentication entirely, establishing a fully functional Remote Access VPN connection without a valid password.

Alon Barad
Alon Barad
67 views•6 min read
•1 day ago•CVE-2026-39922
6.3

CVE-2026-39922: Server-Side Request Forgery in GeoNode Service Registration Endpoint

GeoNode versions prior to 4.4.5 and 5.0.2 are vulnerable to Server-Side Request Forgery (SSRF) in the service registration endpoint. Authenticated attackers with low privileges can exploit insufficient input validation in the Web Map Service (WMS) registration module to force the application server to make outbound network queries to loopback addresses, private RFC1918 subnets, link-local scopes, and cloud metadata endpoints. This technical report details the mechanics of the vulnerability, the underlying architectural flaw, and how to effectively remediate and mitigate the associated security risks.

Alon Barad
Alon Barad
4 views•7 min read
•1 day ago•CVE-2022-0492
7.8

CVE-2022-0492: Privilege Escalation and Container Escape via cgroups v1 release_agent

CVE-2022-0492 is a high-severity missing authorization vulnerability in the Linux kernel's Control Groups (cgroups) v1 implementation. The flaw resides within the cgroup_release_agent_write function in kernel/cgroup/cgroup-v1.c, where the kernel fails to validate if the process writing to the release_agent file possesses administrative capabilities in the initial user namespace. This allows a local attacker inside a container with root privileges (UID 0) to abuse user namespaces, mount a cgroups v1 directory, modify the release_agent parameter, and execute arbitrary commands on the host system as host root, effectively achieving a complete container escape.

Amit Schendel
Amit Schendel
12 views•7 min read