Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-0897 — Asignación de recursos sin límites ni limitación de velocidad en el componente de carga de pesos HDF5 en Google Keras 3.0.0 hasta 3.13.0 en todas las plataformas permite a un atacante remoto causar una Denegación de Servicio (DoS) mediante el agotamiento de la memoria y un bloqueo del intérprete de Python a través de un archivo .keras manipulado. | Kitploit
Herramientas/GitHubGitHub/hyperps/cve-2026-0897
Análisis de VulnerabilidadesExplotaciónAnálisis de MalwarePapers e InvestigaciónAprendizaje y Educación
GitHubhyperps/cve-2026-0897

CVE-2026-0897

Ver Repositorio
111hace 6 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

Acerca de

Asignación de recursos sin límites ni limitación de velocidad en el componente de carga de pesos HDF5 en Google Keras 3.0.0 hasta 3.13.0 en todas las plataformas permite a un atacante remoto causar una Denegación de Servicio (DoS) mediante el agotamiento de la memoria y un bloqueo del intérprete de Python a través de un archivo .keras manipulado.

Compartir

CVE-2026-0897 — Google Keras: Denegación de Servicio mediante Bomba de Forma HDF5 en la Carga de Pesos


Resumen

CampoDetalles
ID CVECVE-2026-0897
Paquetekeras (Google Keras)
RegistroPyPI
Versiones Afectadas3.0.0 hasta 3.13.0 (inclusive)
Tipo de VulnerabilidadCWE-770: Asignación de Recursos sin Límites o Aceleración
Puntuación CVSS7.1 Alta (CVSS 4.0, CNA: Google Inc.)
Vector 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
Vector de AtaqueRed
Complejidad del AtaqueBaja
Privilegios RequeridosNinguno
Interacción del UsuarioPasiva (la víctima carga un archivo de modelo)
Impacto en DisponibilidadAlto
Impacto en ConfidencialidadNinguno
Impacto en IntegridadNinguno
Publicado en NVD15 de enero de 2026
Última Modificación en NVD23 de enero de 2026
Fuente / CNAGoogle Inc.
Reportado PorHyperPS (Sarvesh Patil) vía huntr.dev / GHSA
Estado de la CorrecciónFusionado — PR #21880

Descripción

Existe una vulnerabilidad de Denegación de Servicio en el componente de carga de pesos HDF5 de Google Keras versiones 3.0.0 hasta 3.13.0 en todas las plataformas. La vulnerabilidad se debe a la ausencia de cualquier validación o limitación al procesar los metadatos de forma de conjuntos de datos HDF5 declarados dentro de un archivo .keras.

El formato HDF5 permite que los conjuntos de datos declaren su forma (dimensiones del tensor) como metadatos. Cuando Keras carga los pesos del modelo desde un archivo .keras, lee esta forma declarada e intenta asignar un bloque de memoria correspondiente antes de que se transfiera cualquier dato. Debido a que Keras no realiza ninguna verificación de límites sobre la forma declarada antes de la asignación, un atacante puede crear un archivo model.weights.h5 que declare una forma astronómicamente grande — por ejemplo (1000000, 1000000, 1000000) — lo que provoca que Keras intente una asignación de memoria a escala de petabytes. Esto agota toda la memoria disponible del sistema y bloquea el intérprete de Python.

No se requiere inferencia ni interacción adicional después de cargar el modelo. El ataque se activa completamente en el momento de la carga.


Componente Afectado

ArchivoDescripción
keras/src/saving/file_editor.pyKerasFileEditor._extract_weights_from_store() — lee la forma del conjunto de datos HDF5 y asigna memoria sin validación de tamaño ni limitación

La vulnerabilidad se ubica específicamente en la clase KerasFileEditor, responsable de deserializar los tensores de pesos del modelo desde los almacenes HDF5 incrustados dentro de los archivos .keras.


Desglose del Vector CVSS 4.0

MétricaValorSignificado
Vector de Ataque (AV)RedExplotable remotamente mediante un archivo de modelo distribuido
Complejidad del Ataque (AC)BajaNo se requieren condiciones especiales ni condiciones de carrera
Requisitos del Ataque (AT)NingunoNo se necesita configuración de despliegue previa
Privilegios Requeridos (PR)NingunoNo se requiere autenticación ni cuenta
Interacción del Usuario (UI)PasivaLa víctima debe cargar el archivo .keras malicioso
Disponibilidad del Sistema Vulnerable (VA)AltaEl intérprete de Python se bloquea; el servicio queda completamente no disponible
Confidencialidad del Sistema Vulnerable (VC)NingunaNo hay divulgación de datos
Integridad del Sistema Vulnerable (VI)NingunaNo hay modificación de datos
Impacto en Sistemas Posteriores (SC/SI/SA)NingunoEl impacto se limita al proceso de carga

Impacto

  • Denegación de Servicio Completa — El intérprete de Python se bloquea y el proceso se termina cuando se carga el archivo malicioso
  • Agotamiento de Memoria — La RAM del sistema se consume rápidamente al intentar satisfacer la asignación declarada, afectando potencialmente a otros servicios co-ubicados
  • Interrupción de Pipelines de ML — Cualquier pipeline de producción o investigación que cargue archivos de modelo .keras de fuentes no confiables o proporcionadas por el usuario es vulnerable
  • No se Requiere Autenticación — Un atacante solo necesita que la víctima cargue un archivo malicioso; el ataque no requiere credenciales ni acceso previo

Contextos de Despliegue de Alto Riesgo

ContextoRiesgo
APIs públicas de servidores de modelos que aceptan archivos .keras subidos por el usuarioEl atacante bloquea el servicio de inferencia con una sola solicitud
Plataformas de ML que alojan descargas de modelos de la comunidad (p. ej., Hugging Face)Un modelo envenenado causa DoS a cualquier investigador que lo descargue y cargue
Entornos de aprendizaje federadoUn participante malicioso distribuye un archivo de pesos manipulado para bloquear el coordinador o los nodos pares
Pipelines de CI/CD que cargan checkpoints de modelosUn checkpoint comprometido o sustituido causa fallo del pipeline e indisponibilidad
Servicios de chatbots o NLP que recargan modelos en caliente en tiempo de ejecuciónUna sola solicitud de recarga maliciosa derriba el servicio

Detalles Técnicos

Mecanismo del Ataque: Bomba de Forma HDF5

El formato de archivo HDF5 almacena los metadatos de los tensores — incluidas las declaraciones de forma — por separado de los bytes de datos reales. Cuando KerasFileEditor._extract_weights_from_store() encuentra una entrada de conjunto de datos, lee la forma declarada y llama a NumPy para pre-asignar un array de las dimensiones correspondientes antes de leer cualquier dato del disco.

Debido a que la forma son metadatos, un archivo HDF5 mínimo puede declarar una forma que requeriría petabytes de memoria mientras el archivo en sí permanece con solo unos pocos kilobytes de tamaño. La proporción entre el tamaño del archivo y el tamaño de la asignación convierte esto en un ataque de amplificación altamente efectivo.

Una forma como (1000000, 1000000, 1000000) con un dtype de float de 32 bits solicitaría aproximadamente 4,000 petabytes de memoria. El killer de falta de memoria del SO o el asignador de Python bloquearán el proceso casi instantáneamente.

Ruta de Código Vulnerable (antes de la corrección)

# 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

La ausencia de cualquier verificación sobre shape antes de llamar a np.zeros() es la causa raíz.


Prueba de Concepto

Esta información se proporciona únicamente con fines educativos y defensivos. No pruebe contra sistemas que no le pertenezcan o para los cuales no tenga autorización explícita de pruebas.

Generación de un Archivo .keras Malicioso

Descargar herramienta