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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-9335-keras-hdf5-externallink — CVE-2026-9335: KerasFileEditor и load_weights следуют за ExternalLinks из h5py, раскрывая содержимое произвольных локальных HDF5-файлов в keras ≤ 3.14.0. Рекомендации + проверенные PoC. | Kitploit
Инструменты/GitHubGitHub/paparojonathan/cve-2026-9335-keras-hdf5-externallink
Анализ уязвимостейЭксплуатацияСтатьи и ИсследованияОбучение и ОбразованиеПодобранные Ресурсы
GitHubpaparojonathan/cve-2026-9335-keras-hdf5-externallink

CVE-2026-9335-keras-hdf5-externallink

CVE-2026-9335: KerasFileEditor и load_weights следуют за ExternalLinks из h5py, раскрывая содержимое произвольных локальных HDF5-файлов в keras ≤ 3.14.0. Рекомендации + проверенные PoC.

Репозиторий
4 ч 2 мин назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

CVE-2026-9335 — Раскрытие содержимого локальных файлов через HDF5 ExternalLink в Keras

CVE CVSS CWE-22 Affected Fixed

Два публичных API Keras — keras.saving.KerasFileEditor и keras.saving.load_weights / — читают элементы групп HDF5 с помощью без проверки типа ссылки. h5py / при индексации, поэтому предоставленный атакующим файл , или , содержащий только ссылку, заставляет Keras читать содержимое .

model.load_weights
прямой индексации
автоматически разыменовывает
ExternalLink
SoftLink
.weights.h5
.h5
.keras
произвольных файлов HDF5 в локальной файловой системе жертвы

В Keras уже есть корректная защита (safe_get_h5_group / safe_get_h5_dataset в saving_lib.py) — эти две точки входа просто не вызывают её.

Кратко

CVECVE-2026-9335
Затронутые версииkeras-team/keras ≤ 3.14.0 (PyPI)
ТипPath Traversal / Раскрытие информации (CWE-22, CWE-200)
CVSS 3.1AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N → 6.5 (Medium)
ВоздействиеРаскрытие любого локального файла HDF5, который жертва может прочитать
Вектор атакиЖертва открывает/загружает вредоносный файл .weights.h5 / .h5 / .keras
СтатусИсправлено в keras 3.15.0 (PR #22899 / #22900); подтверждено на huntr (2026-05-22, мейнтейнер hertschuh)
Автор отчётаJonathan Paparo (jonathan-paparo)

Содержимое репозитория

ПутьЧто это
advisory/CVE-2026-9335.mdПолное техническое описание: первопричина, обе точки входа, вывод PoC, исправление
poc/poc_file_editor.pyPoC 1 — KerasFileEditor следует по ExternalLink и раскрывает h5 жертвы
poc/poc_load_weights.pyPoC 2 — model.load_weights загружает веса жертвы через ExternalLink
poc/requirements.txtЗафиксированная среда воспроизведения
docs/timeline.mdХронология скоординированного раскрытия

Первопричина (за 30 секунд)

root@kitploit:~
# keras/src/saving/saving_api.py  (load_weights, ветка legacy .h5)
with h5py.File(filepath, "r") as f:
    if "layer_names" not in f.attrs and "model_weights" in f:
        f = f["model_weights"]      # <-- ExternalLink здесь автоматически разыменовывается h5py

f["model_weights"] (и аналогичный обход data[key] в file_editor.py) прозрачно следует по ссылке в другой файл. Безопасный шаблон, который Keras использует в других местах, сначала проверяет тип ссылки:

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__}")

Воспроизведение

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

# PoC 1 — KerasFileEditor раскрывает содержимое отдельного файла h5 жертвы
KERAS_BACKEND=jax python poc/poc_file_editor.py

# PoC 2 — model.load_weights загружает веса файла жертвы через ExternalLink
KERAS_BACKEND=jax python poc/poc_load_weights.py

Каждый PoC создаёт собственные одноразовые файлы h5 «жертвы» и «атакующего» в системной временной директории, демонстрирует утечку, выводит *** VULNERABILITY CONFIRMED *** и самостоятельно очищает за собой. Проверено на keras==3.14.0, Python 3.12.6, бэкенд JAX.

Исправление

Направьте обе точки входа через существующий хелпер safe_get_h5_group или добавьте предварительную проверку data.get(key, default=None, getclass=True, getlink=True), которая отклоняет (h5py.ExternalLink, h5py.SoftLink) перед индексацией. См. advisory для точных диффов.

Ответственное использование

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

Авторство

Обнаружено и сообщено Jonathan Paparo (huntr: jonathan-paparo). Подтверждено мейнтейнером keras-team hertschuh.

Скачать инструмент