TensorFlow / Keras continues to honor HDF5 “external storage” and ExternalLink features when loading weights. A malicious .weights.h5 (or a .keras archive embedding such weights) can direct load_weights() to read from an arbitrary readable filesystem path. The bytes pulled from that path populate model tensors and become observable through inference or subsequent re-save operations. Keras “safe mode” only guards object deserialization and does not cover weight I/O, so this behaviour persists even with safe mode enabled. The issue is confirmed on the latest publicly released stack (tensorflow 2.20.0, keras 3.11.3, h5py 3.15.1, numpy 2.3.4).
/etc/hosts, /etc/passwd, /etc/hostname).model.load_weights() or tf.keras.models.load_model() on an attacker-supplied HDF5 weights file or .keras archive./home/<user>/.ssh/id_rsa, /etc/shadow if readable, configuration files containing API keys, etc.).model.load_weights() (or tf.keras.models.load_model() for .keras archives). HDF5 follows the external...3.12.13.13.2Exploitability
AV:NAC:LPR:NUI:RScope
S:UImpact
C:HI:LA:N7.1/CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N