Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-9335-keras-hdf5-externallink — CVE-2026-9335 : KerasFileEditor et load_weights suivent les ExternalLinks de h5py, divulguant le contenu arbitraire de fichiers HDF5 locaux dans keras ≤ 3.14.0. Avis + PoCs vérifiés. | Kitploit
Outils/GitHubGitHub/paparojonathan/cve-2026-9335-keras-hdf5-externallink
Analyse des VulnérabilitésExploitationArticles et RechercheApprentissage et ÉducationRessources Organisées
GitHubpaparojonathan/cve-2026-9335-keras-hdf5-externallink

CVE-2026-9335-keras-hdf5-externallink

CVE-2026-9335 : KerasFileEditor et load_weights suivent les ExternalLinks de h5py, divulguant le contenu arbitraire de fichiers HDF5 locaux dans keras ≤ 3.14.0. Avis + PoCs vérifiés.

Voir le dépôt
il y a 4h 2mPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-9335 — Divulgation de contenu de fichiers locaux via ExternalLink HDF5 dans Keras

CVE CVSS CWE-22 Affected Fixed

Deux API publiques de Keras — keras.saving.KerasFileEditor et keras.saving.load_weights / — lisent les membres de groupes HDF5 par sans vérification du type de lien. h5py les / lors de l'indexation, de sorte qu'un fichier , ou fourni par un attaquant et ne contenant qu'un lien amène Keras à lire le contenu de .

model.load_weights
indexation directe
déréférence automatiquement
ExternalLink
SoftLink
.weights.h5
.h5
.keras
fichiers HDF5 arbitraires sur le système de fichiers local de la victime

Keras fournit déjà la protection correcte (safe_get_h5_group / safe_get_h5_dataset dans saving_lib.py) — ces deux points d'entrée ne l'appellent simplement pas.

En bref

CVECVE-2026-9335
Versions affectéeskeras-team/keras ≤ 3.14.0 (PyPI)
TypeTraversée de chemin / Exposition d'informations (CWE-22, CWE-200)
CVSS 3.1AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N → 6.5 (Moyen)
ImpactDivulgation de tout fichier HDF5 local que la victime peut lire
VecteurLa victime ouvre/charge un fichier .weights.h5 / .h5 / .keras malveillant
StatutCorrigé dans keras 3.15.0 (PR #22899 / #22900) ; validé sur huntr (2026-05-22, mainteneur hertschuh)
SignaleurJonathan Paparo (jonathan-paparo)

Contenu du dépôt

CheminDescription
advisory/CVE-2026-9335.mdAnalyse technique complète : cause racine, les deux sites, sortie du PoC, correctif
poc/poc_file_editor.pyPoC 1 — KerasFileEditor suit un ExternalLink et divulgue un h5 de la victime
poc/poc_load_weights.pyPoC 2 — model.load_weights récupère les poids d'une victime via ExternalLink
poc/requirements.txtEnvironnement de reproduction épinglé
docs/timeline.mdChronologie de la divulgation coordonnée

Cause racine (30 secondes)

root@kitploit:~
# keras/src/saving/saving_api.py  (load_weights, branche .h5 héritée)
with h5py.File(filepath, "r") as f:
    if "layer_names" not in f.attrs and "model_weights" in f:
        f = f["model_weights"]      # <-- Un ExternalLink ici est automatiquement déréférencé par h5py

f["model_weights"] (et la traversée analogue data[key] dans file_editor.py) suit de manière transparente un lien vers un autre fichier. Le modèle sûr que Keras utilise ailleurs vérifie d'abord le type de lien :

root@kitploit:~
# keras/src/saving/saving_lib.py  (safe_get_h5_group)
group_type = parent.get(name, default=None, getclass=True, getlink=True)
if group_type in (h5py.ExternalLink, h5py.SoftLink):
    raise ValueError(f"Not allowed: H5 file with {group_type.__name__}")

Reproduction

root@kitploit:~
python -m pip install -r poc/requirements.txt

# PoC 1 — KerasFileEditor divulgue le contenu d'un fichier h5 séparé de la victime
KERAS_BACKEND=jax python poc/poc_file_editor.py

# PoC 2 — model.load_weights charge les poids d'un fichier de la victime via un ExternalLink
KERAS_BACKEND=jax python poc/poc_load_weights.py

Chaque PoC crée ses propres fichiers h5 jetables « victime » et « attaquant » dans le répertoire temporaire du système, démontre la fuite, affiche *** VULNERABILITY CONFIRMED ***, puis se nettoie. Vérifié avec keras==3.14.0, Python 3.12.6, backend JAX.

Correctif

Acheminer les deux sites via l'assistant existant safe_get_h5_group, ou ajouter une vérification préalable data.get(key, default=None, getclass=True, getlink=True) qui rejette (h5py.ExternalLink, h5py.SoftLink) avant l'indexation. Voir l'advisory pour les diffs exacts.

Utilisation responsable

Ce matériel est publié à des fins défensives et éducatives après divulgation coordonnée et attribution du CVE. Les PoC n'opèrent que sur des fichiers qu'ils créent eux-mêmes dans un répertoire temporaire. N'utilisez pas ces techniques contre des systèmes ou des données que vous n'êtes pas autorisé à tester.

Crédit

Découvert et signalé par Jonathan Paparo (huntr : jonathan-paparo). Validé par le mainteneur de keras-team hertschuh.

Télécharger l’outil