CVE-2025-9905

The Keras Model.load_model method can be exploited to achieve arbitrary code execution, even with safe_mode=True. One can create a specially crafted .h5/.hdf5 model archive that, when loaded via Model.load_model, will trigger arbitrary code to be executed. This is achieved by crafting a special .h5 archive file that uses the Lambda layer feature of keras which allows arbitrary Python code in the form of pickled code. The vulnerability comes from the fact that the safe_mode=True option is not honored when reading .h5 archives. Note that the .h5/.hdf5 format is a legacy format supported by Keras 3 for backwards compatibility.
Configurations

Configuration 1 (hide)

cpe:2.3:a:keras:keras:*:*:*:*:*:*:*:*

History

19 Oct 2026, 16:10

Type Values Removed Values Added
Summary
  • (es) El método Keras Model.load_model puede ser explotado para lograr ejecución de código arbitrario, incluso con safe_mode=True. Se puede crear un archivo de modelo .h5/.hdf5 especialmente diseñado que, al cargarse a través de Model.load_model, activará la ejecución de código arbitrario. Esto se logra al diseñar un archivo .h5 especial que utiliza la característica de capa Lambda de Keras, la cual permite código Python arbitrario en forma de código pickled. La vulnerabilidad surge del hecho de que la opción safe_mode=True no se respeta al leer archivos .h5. Tenga en cuenta que el formato .h5/.hdf5 es un formato heredado compatible con Keras 3 para compatibilidad con versiones anteriores.

Information

Published : 2025-09-19 09:15

Updated : 2026-10-19 16:10


NVD link : CVE-2025-9905

Mitre link : CVE-2025-9905

CVE.ORG link : CVE-2025-9905


JSON object : View

Products Affected

keras

  • keras
CWE
CWE-913

Improper Control of Dynamically-Managed Code Resources