Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-0897 — Выделение ресурсов без ограничений или регулирования в компоненте загрузки весов HDF5 в Google Keras 3.0.0–3.13.0 на всех платформах позволяет удалённому злоумышленнику вызвать отказ в обслуживании (DoS) через исчерпание памяти и сбой интерпретатора Python с помощью специально созданного файла .keras | Kitploit
Инструменты/GitHubGitHub/hyperps/cve-2026-0897
Анализ уязвимостейЭксплуатацияАнализ вредоносных программСтатьи и ИсследованияОбучение и Образование
GitHubhyperps/cve-2026-0897

CVE-2026-0897

Репозиторий
1116 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →

Описание

Выделение ресурсов без ограничений или регулирования в компоненте загрузки весов HDF5 в Google Keras 3.0.0–3.13.0 на всех платформах позволяет удалённому злоумышленнику вызвать отказ в обслуживании (DoS) через исчерпание памяти и сбой интерпретатора Python с помощью специально созданного файла .keras

Поделиться

CVE-2026-0897 — Google Keras: отказ в обслуживании через HDF5 Shape Bomb при загрузке весов


Обзор

ПолеДетали
CVE IDCVE-2026-0897
Пакетkeras (Google Keras)
РеестрPyPI
Затронутые версиис 3.0.0 по 3.13.0 (включительно)
Тип уязвимостиCWE-770: выделение ресурсов без лимитов или регулирования
Оценка CVSS7.1 (высокий) (CVSS 4.0, CNA: Google Inc.)
Вектор 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
Вектор атакиСетевой
Сложность атакиНизкая
Требуемые привилегииНе требуются
Взаимодействие с пользователемПассивное (жертва загружает файл модели)
Влияние на доступностьВысокое
Влияние на конфиденциальностьОтсутствует
Влияние на целостностьОтсутствует
Опубликовано в NVD15 января 2026 г.
Последнее изменение в NVD23 января 2026 г.
Источник / CNAGoogle Inc.
СообщилHyperPS (Sarvesh Patil) через huntr.dev / GHSA
Статус исправленияОбъединено — PR #21880

Описание

Уязвимость типа «отказ в обслуживании» существует в компоненте загрузки весов HDF5 в Google Keras версий 3.0.0–3.13.0 на всех платформах. Уязвимость вызвана отсутствием какой-либо проверки или регулирования при обработке метаданных формы наборов данных HDF5, объявленных внутри архива .keras.

Формат HDF5 позволяет наборам данных объявлять свою форму (размерности тензора) в виде метаданных. Когда Keras загружает веса модели из архива .keras, он считывает эту объявленную форму и пытается выделить соответствующий блок памяти до передачи каких-либо данных. Поскольку Keras не выполняет проверку границ объявленной формы перед выделением памяти, злоумышленник может создать файл model.weights.h5, объявляющий астрономически большую форму — например (1000000, 1000000, 1000000), — что заставит Keras попытаться выделить память в масштабе петабайт. Это исчерпывает всю доступную системную память и приводит к аварийному завершению интерпретатора Python.

После загрузки модели не требуется инференс или какое-либо дальнейшее взаимодействие. Атака полностью срабатывает в момент загрузки.


Затронутый компонент

ФайлОписание
keras/src/saving/file_editor.pyKerasFileEditor._extract_weights_from_store() — считывает форму набора данных HDF5 и выделяет память без проверки размера или регулирования

Уязвимость расположена конкретно в классе KerasFileEditor, который отвечает за десериализацию тензоров весов модели из хранилищ HDF5, встроенных в архивы .keras.


Разбивка вектора CVSS 4.0

МетрикаЗначениеСмысл
Attack Vector (AV)СетевойЭксплуатируется удалённо через распространяемый файл модели
Attack Complexity (AC)НизкаяНе требуются особые условия или состояния гонки
Attack Requirements (AT)НетНе требуется предварительной конфигурации развёртывания
Privileges Required (PR)НетНе требуется аутентификация или учётная запись
User Interaction (UI)ПассивноеЖертва должна загрузить вредоносный архив .keras
Vulnerable System Availability (VA)ВысокийИнтерпретатор Python аварийно завершается; сервис становится полностью недоступным
Vulnerable System Confidentiality (VC)НетУтечки данных нет
Vulnerable System Integrity (VI)НетИзменения данных нет
Subsequent System Impact (SC/SI/SA)НетВоздействие ограничено процессом загрузки

Воздействие

  • Полный отказ в обслуживании — интерпретатор Python аварийно завершается, и процесс прекращает работу при загрузке вредоносного архива
  • Исчерпание памяти — оперативная память системы быстро расходуется при попытке выполнить объявленное выделение, что потенциально затрагивает другие сервисы на том же хосте
  • Нарушение работы ML-конвейеров — уязвимы любые производственные или исследовательские конвейеры, загружающие архивы моделей .keras из недоверенных источников или источников, предоставленных пользователями
  • Аутентификация не требуется — злоумышленнику достаточно, чтобы жертва загрузила вредоносный архив; для атаки не нужны учётные данные или предварительный доступ

Контексты развёртывания с высоким риском

КонтекстРиск
Публичные API обслуживания моделей, принимающие загружаемые пользователями файлы .kerasАтакующий обрушивает сервис инференса одним запросом
ML-платформы, размещающие загрузки моделей от сообщества (например, Hugging Face)Отравленная модель вызывает DoS для любого исследователя, который скачает и загрузит её
Среды федеративного обученияЗлоумышленный участник распространяет специально созданный файл весов, чтобы обрушить координатор или узлы-пиры
CI/CD-конвейеры, загружающие контрольные точки моделейСкомпрометированная или подменённая контрольная точка вызывает сбой конвейера и его недоступность
Чат-боты или NLP-сервисы, выполняющие горячую перезагрузку моделей во время выполненияОдин вредоносный запрос на перезагрузку выводит сервис из строя

Технические детали

Механизм атаки: HDF5 Shape Bomb

Формат файлов HDF5 хранит метаданные тензоров — включая объявления формы — отдельно от фактических байтов данных. Когда KerasFileEditor._extract_weights_from_store() встречает запись набора данных, он считывает объявленную форму и вызывает NumPy для предварительного выделения массива соответствующих размерностей, прежде чем считывать какие-либо данные с диска.

Поскольку форма является метаданными, минимальный файл HDF5 может объявлять форму, которая потребует петабайты памяти, при этом сам файл остаётся размером всего в несколько килобайт. Соотношение размера файла к размеру выделяемой памяти делает это высокоэффективной атакой с усилением.

Форма, такая как (1000000, 1000000, 1000000) с типом данных 32-разрядного float, потребовала бы приблизительно 4000 петабайт памяти. OS out-of-memory killer или аллокатор Python приведёт к аварийному завершению процесса практически мгновенно.

Уязвимый участок кода (до исправления)

# 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

Отсутствие какой-либо проверки shape перед вызовом np.zeros() является корневой причиной.


Доказательство концепции (PoC)

Эта информация предоставлена исключительно в образовательных и защитных целях. Не проводите тестирование против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения.

Создание вредоносного архива .keras

# generate_shape_bomb.py
import h5py
import zipfile
import json
import os
Скачать инструмент