Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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-0897 — Allocation de ressources sans limites ni limitation de débit dans le composant de chargement des poids HDF5 de Google Keras 3.0.0 à 3.13.0 sur toutes les plateformes permet à un attaquant distant de provoquer un déni de service (DoS) via l'épuisement de la mémoire et un crash de l'interpréteur Python à l'aide d'un fichier .keras contrefait. | Kitploit
Outils/GitHubGitHub/hyperps/cve-2026-0897
Analyse des VulnérabilitésExploitationAnalyse de MalwareArticles et RechercheApprentissage et Éducation
GitHubhyperps/cve-2026-0897

CVE-2026-0897

Voir le dépôt
111il y a 6 moisPas 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 →

À propos

Allocation de ressources sans limites ni limitation de débit dans le composant de chargement des poids HDF5 de Google Keras 3.0.0 à 3.13.0 sur toutes les plateformes permet à un attaquant distant de provoquer un déni de service (DoS) via l'épuisement de la mémoire et un crash de l'interpréteur Python à l'aide d'un fichier .keras contrefait.

Partager

CVE-2026-0897 — Google Keras : déni de service via bombe de forme HDF5 dans le chargement des poids


Aperçu

ChampDétails
Identifiant CVECVE-2026-0897
Paquetkeras (Google Keras)
RegistrePyPI
Versions affectées3.0.0 à 3.13.0 (inclus)
Type de vulnérabilitéCWE-770 : Allocation de ressources sans limites ni régulation
Score CVSS7.1 Élevé (CVSS 4.0, CNA : Google Inc.)
Vecteur CVSSCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Vecteur d'attaqueRéseau
Complexité d'attaqueFaible
Privilèges requisAucun
Interaction utilisateurPassive (la victime charge un fichier de modèle)
Impact sur la disponibilitéÉlevé
Impact sur la confidentialitéAucun
Impact sur l'intégritéAucun
Publiée sur NVD15 janvier 2026
Dernière modification NVD23 janvier 2026
Source / CNAGoogle Inc.
Signalée parHyperPS (Sarvesh Patil) via huntr.dev / GHSA
État du correctifFusionné — PR #21880

Description

Une vulnérabilité de déni de service existe dans le composant de chargement de poids HDF5 de Google Keras versions 3.0.0 à 3.13.0 sur toutes les plateformes. La vulnérabilité est causée par l'absence de validation ou de limitation lors du traitement des métadonnées de forme de jeu de données HDF5 déclarées dans une archive .keras.

Le format HDF5 permet aux jeux de données de déclarer leur forme (dimensions du tenseur) sous forme de métadonnées. Lorsque Keras charge des poids depuis une archive .keras, il lit cette forme déclarée et tente d'allouer un bloc mémoire correspondant avant tout transfert de données. Comme Keras n'effectue aucun contrôle des limites sur la forme déclarée avant l'allocation, un attaquant peut créer un fichier model.weights.h5 déclarant une forme astronomiquement grande — par exemple (1000000, 1000000, 1000000) — ce qui amène Keras à tenter une allocation mémoire à l'échelle du pétaoctet. Cela épuise toute la mémoire système disponible et fait planter l'interpréteur Python.

Aucune inférence ou interaction supplémentaire n'est requise après le chargement du modèle. L'attaque est entièrement déclenchée au moment du chargement.


Composant affecté

FichierDescription
keras/src/saving/file_editor.pyKerasFileEditor._extract_weights_from_store() — lit la forme du jeu de données HDF5 et alloue la mémoire sans validation de taille ni limitation

La vulnérabilité se situe précisément dans la classe KerasFileEditor, chargée de désérialiser les tenseurs de poids du modèle depuis les magasins HDF5 intégrés dans les archives .keras.


Répartition du vecteur CVSS 4.0

MétriqueValeurSignification
Vecteur d'attaque (AV)RéseauExploitable à distance via un fichier de modèle distribué
Complexité d'attaque (AC)FaibleAucune condition particulière ni course requise
Exigences d'attaque (AT)AucuneAucune configuration de déploiement préalable requise
Privilèges requis (PR)AucunAucune authentification ni compte requis
Interaction utilisateur (UI)PassiveLa victime doit charger l'archive .keras malveillante
Disponibilité du système vulnérable (VA)ÉlevéeL'interpréteur Python plante ; le service devient totalement indisponible
Confidentialité du système vulnérable (VC)AucuneAucune divulgation de données
Intégrité du système vulnérable (VI)AucuneAucune modification de données
Impact sur les systèmes suivants (SC/SI/SA)AucunL'impact est limité au processus de chargement

Impact

  • Déni de service complet — L'interpréteur Python plante et le processus est terminé lorsque l'archive malveillante est chargée
  • Épuisement de la mémoire — La RAM système est rapidement consommée en tentant de satisfaire l'allocation déclarée, ce qui peut affecter d'autres services co-localisés
  • Perturbation des pipelines ML — Tout pipeline de production ou de recherche qui charge des archives de modèles .keras provenant de sources non fiables ou fournies par l'utilisateur est vulnérable
  • Aucune authentification requise — Un attaquant a seulement besoin que la victime charge une archive malveillante ; l'attaque ne nécessite ni identifiants ni accès préalable

Contextes de déploiement à haut risque

ContexteRisque
API publiques de service de modèles qui acceptent des fichiers .keras téléversés par les utilisateursL'attaquant fait planter le service d'inférence avec une seule requête
Plateformes ML hébergeant des téléchargements de modèles communautaires (par ex. Hugging Face)Un modèle empoisonné provoque un DoS pour tout chercheur qui le télécharge et le charge
Environnements d'apprentissage fédéréUn participant malveillant distribue un fichier de poids conçu pour faire planter le coordinateur ou les nœuds pairs
Pipelines CI/CD qui chargent des points de contrôle de modèlesUn point de contrôle compromis ou substitué provoque une défaillance du pipeline et son indisponibilité
Chatbots ou services NLP qui rechargent les modèles à chaud au moment de l'exécutionUne seule requête de rechargement malveillante met le service hors service

Détails techniques

Mécanisme d'attaque : bombe de forme HDF5

Le format de fichier HDF5 stocke les métadonnées des tenseurs — y compris les déclarations de forme — séparément des octets de données réels. Lorsque KerasFileEditor._extract_weights_from_store() rencontre une entrée de jeu de données, il lit la forme déclarée et appelle NumPy pour pré-allouer un tableau des dimensions correspondantes avant de lire toute donnée depuis le disque.

Comme la forme est une métadonnée, un fichier HDF5 minimal peut déclarer une forme qui nécessiterait des pétaoctets de mémoire alors que le fichier lui-même ne pèse que quelques kilo-octets. Le rapport entre la taille du fichier et la taille de l'allocation fait de cette attaque une attaque par amplification très efficace.

Une forme telle que (1000000, 1000000, 1000000) avec un dtype flottant 32 bits demanderait environ 4 000 pétaoctets de mémoire. Le « out-of-memory killer » du système d'exploitation ou l'allocateur Python fera planter le processus presque instantanément.

Chemin de code vulnérable (avant correctif)

# keras/src/saving/file_editor.py (pre-fix, simplified)
def _extract_weights_from_store(self, h5_file, inner_path=""):
    for key in h5_file.keys():
        obj = h5_file[key]
        if isinstance(obj, h5py.Dataset):
            # Shape is read from metadata — no validation performed
            shape = obj.shape
            # NumPy attempts to allocate based on declared shape
            data = np.zeros(shape, dtype=obj.dtype)  # VULNERABLE: unbounded allocation

L'absence de toute vérification de shape avant l'appel à np.zeros() est la cause racine.


Preuve de concept

Ces informations sont fournies à des fins éducatives et défensives uniquement. Ne testez pas sur des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite.

Génération d'une archive .keras malveillante

Télécharger l’outil