Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious/truncated .ckpt file
-
DeliveryHost on model-sharing platform
-
ExploitVictim downloads and loads file
-
ExecutionPickle opcode handler advances buffer without bounds check
-
PersistOut-of-bounds read past buffer_end
-
ImpactApplication crash or adjacent memory disclosure
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the victim application to load a .ckpt format PyTorch checkpoint file originating from an untrusted source - the vulnerability is not triggered by .safetensors, GGUF, or other non-pickle model formats. The CVSS attack vector is local (AV:L), meaning the malicious file must be present on the system and explicitly loaded by the application or user (UI:R); remote network delivery alone is insufficient without this final load step. No privileges are required of the attacker (PR:N per CVSS). Exploitation is therefore limited to deployments where the application accepts .ckpt model files, particularly pipelines that auto-download community models from sharing platforms. Applications that exclusively load .safetensors files or enforce a trusted-source allowlist are not affected, as the vulnerable parser is only invoked for .ckpt inputs. |
| Impact | The CVSS 3.1 score of 5.5 (Medium) reflects a local attack vector requiring user interaction - an attacker cannot exploit this without the victim first loading a crafted .ckpt file, making automated mass exploitation unlikely. The vector AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H scores availability impact as High (crash) with no confidentiality or integrity impact. However, the source data tags this vulnerability as 'Information Disclosure,' which conflicts with the C:N CVSS score - out-of-bounds reads in C/C++ parsers routinely expose adjacent heap or stack memory, and defenders should treat potential memory leakage as a realistic secondary impact pending vendor clarification. No CISA KEV listing exists and no public exploit has been identified at time of analysis. Critically, LibFuzzer triggered crashes in under one second with malformed inputs, indicating that any threat actor with basic fuzzing capability could rapidly generate working crash payloads without sophisticated exploit development. The practical risk is highest for applications that automatically download and load community-sourced .ckpt model files, where the UI:R user-interaction requirement effectively becomes a design feature of normal operation rather than a true exploitation barrier. |
| Exploit ScenarioDerived | An attacker publishes a maliciously crafted or deliberately truncated .ckpt model file on a popular model-sharing platform such as Hugging Face or CivitAI. A developer or end-user downloads and loads the file into an application built on an unpatched version of stable-diffusion.cpp, triggering the out-of-bounds read in the pickle opcode parser, which causes an application crash or, depending on runtime memory layout, leaks adjacent heap contents. Because LibFuzzer demonstrated crashing inputs can be generated in under one second, no sophisticated exploit development is required beyond constructing a malformed .ckpt file. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 16, 2026
Out-of-bounds reads in stable-diffusion.cpp's PyTorch pickle checkpoint parser (versions prior to master-584-0a7ae07) allow a crafted or truncated .ckpt file to crash the loading application or leak process memory contents. The pickle opcode handlers in src/model.cpp advanced the buffer pointer without verifying remaining bytes before each read, meaning any application using this library to load untrusted .ckpt model files is exposed to denial-of-service and potential memory disclosure. No public exploit has been identified at time of analysis, though LibFuzzer triggered crashing inputs in under one second, indicating an extremely low barrier for generating working crash payloads.
RemediationAI
Upstream fix available (commit 0a7ae07f948eff4611968a65a22bd7c7031ad74f); a formally tagged released version is not independently confirmed beyond the master-584-0a7ae07 identifier. Developers should update to or rebuild from commit 0a7ae07 or any subsequent commit, available at https://github.com/leejet/stable-diffusion.cpp/commit/0a7ae07f948eff4611968a65a22bd7c7031ad74f. If an immediate update is not feasible, the vendor-recommended workaround is to restrict model loading exclusively to verified trusted sources and prefer the .safetensors format, which does not invoke the vulnerable pickle-based parser. Applications should implement an allowlist of permitted model file origins and refuse to process .ckpt files from arbitrary user-supplied URLs or unvetted community repositories. Note that switching to .safetensors eliminates the pickle attack surface entirely but may require model conversion for existing .ckpt weights, and not all community models have .safetensors equivalents available.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerable component is the PyTorch checkpoint (.ckpt) pickle parser in src/model.cpp of leejet/stable-diffusion.cpp (CPE: cpe:2.3:a:leejet:stable-diffusion.cpp:*:*:*:*:*:*:*:*), a pure C/C++ library for running Stable Diffusion, Flux, Wan, and related diffusion model inference. CWE-125 (Out-of-bounds Read) is the root cause: throughout the pickle parser, opcode handlers advanced the parser position using expressions such as 'buffer += N' without first verifying that 'buffer + N <= buffer_end'. A specially crafted or simply truncated .ckpt file can therefore drive reads past the end of the metadata buffer into adjacent memory. The fix (commit 0a7ae07) restructures checkpoint I/O by replacing the vulnerable ckpt_io.h parser entirely with separate torch_legacy_io and torch_zip_io modules that enforce proper bounds on every buffer advance, and renames the dispatching logic in model.cpp accordingly.
Know when Checkpoint 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
AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Upgraded C from N to L because CWE-125 OOB reads in C/C++ can expose adjacent memory, conflicting with the 'Information Disclosure' tag; all other metrics align with the official vector.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
stable-diffusion.cpp is a pure C/C++ library for running diffusion model (Stable Diffusion, Flux, Wan, Qwen Image, Z-Image, and more) inference. Versions prior to master-584-0a7ae07 are vulnerable to an out-of-bounds reads error through PyTorch checkpoint pickle opcode parsing. The pickle .ckpt parser in src/model.cpp did not consistently check that enough input remained before reading opcode arguments or advancing the parser buffer with a crafted or truncated .ckpt file. Throughout the pickle parser, opcode handlers advanced the parser position with expressions such as buffer += N without first checking that buffer + N <= buffer_end. A truncated file could therefore cause reads past the end of the metadata buffer. LibFuzzer found crashes in under one second using malformed checkpoint inputs. Any application using affected stable-diffusion.cpp releases to load untrusted .ckpt model files could be vulnerable. The attack requires the victim or application to load a .ckpt file from an untrusted source, such as a downloaded model from a model sharing site. This issue has been fixed in version master-584-0a7ae07. If developers are unable to immediately update their applications, they can work around this issue by ensuring they do not load .ckpt checkpoint files from untrusted sources. They should prefer trusted model sources and safer formats such as .safetensors where possible.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Checkpoint
View allGNU Bash through 4.3 processes trailing strings after function definitions in the values of environment variables, which
Potentially allowing an attacker to read certain information on Check Point Security Gateways once connected to the inte
GNU Bash through 4.3 bash43-025 processes trailing strings after certain malformed function definitions in the values of
backend/comics/comics-document.c (aka the comic book backend) in GNOME Evince before 3.24.1 allows remote attackers to e
Remote code execution in Check Point Quantum Security Gateway arises from improper certificate trust validation during V
Authentication bypass in the Check Point SmartConsole login process lets an unauthenticated remote attacker mint a valid
Authentication bypass in Check Point Quantum Security Gateway and Spark Firewalls allows unauthenticated remote attacker
Unauthenticated attackers who can reach the file-upload interface of Check Point Management Server can combine directory
An OpenSSL TLS server may crash if sent a maliciously crafted renegotiation ClientHello message from a client. Rated med
Remote code execution in Check Point Quantum Security Gateway and Quantum Security Management stems from a heap-based bu
Unauthenticated remote code execution affects Check Point Quantum Security Management, where a stack-based buffer overfl
The huggingface/transformers library is vulnerable to arbitrary code execution through deserialization of untrusted data
EUVD-2026-37137
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB