CVE-2026-12570: Denial of Service via HDF5 Shape Bomb in keras.models.load_model() in keras-team/keras
A vulnerability in keras-team/keras versions <= 3.15.0 allows for a denial of service (DoS) attack when loading malicious .keras model files via the keras.models.loadmodel() function. The H5IOStore.getitem method in keras/src/saving/savinglib.py does not validate the shape or size of datasets, leading to unbounded memory allocation. A specially crafted .keras file can exploit this flaw to trigger an out-of-memory (OOM) condition, causing the process to be terminated (exit code 137). This issue bypasses the fix for CVE-2026-0897, which only addressed a similar vulnerability in KerasFileEditor. The attack vector includes poisoned models from public repositories or malicious model registries, posing a risk to machine learning pipelines that process untrusted models.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
Do not load untrusted .keras model files from public repositories or malicious model registries via keras.models.load_model(); restrict loading to trusted, verified model sources.
Event History
Frequently Asked Questions
What is the severity of CVE-2026-12570?
The severity of CVE-2026-12570 is medium with a score of 5.5.
What type of attack is CVE-2026-12570 associated with?
CVE-2026-12570 is associated with a denial of service (DoS) attack.
How do I fix CVE-2026-12570?
To fix CVE-2026-12570, update to keras-team/keras version 3.15.1 or later.
What versions of keras-team/keras are affected by CVE-2026-12570?
CVE-2026-12570 affects keras-team/keras versions 3.15.0 and earlier.
What function in keras is vulnerable according to CVE-2026-12570?
The vulnerable function according to CVE-2026-12570 is keras.models.load_model().