Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-9335-keras-hdf5-externallink — CVE-2026-9335: KerasFileEditor e load_weights seguem ExternalLinks do h5py, divulgando conteúdos arbitrários de arquivos HDF5 locais no keras ≤ 3.14.0. Aviso + PoCs verificados. | Kitploit
Ferramentas/GitHubGitHub/paparojonathan/cve-2026-9335-keras-hdf5-externallink
Análise de VulnerabilidadesExploraçãoPapers e PesquisaAprendizado e EducaçãoRecursos Curados
GitHubpaparojonathan/cve-2026-9335-keras-hdf5-externallink

CVE-2026-9335-keras-hdf5-externallink

CVE-2026-9335: KerasFileEditor e load_weights seguem ExternalLinks do h5py, divulgando conteúdos arbitrários de arquivos HDF5 locais no keras ≤ 3.14.0. Aviso + PoCs verificados.

Ver Repositório
há 4 horasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-9335 — Divulgação de conteúdo de arquivo local HDF5 ExternalLink no Keras

CVE CVSS CWE-22 Affected Fixed

Duas APIs públicas do Keras — keras.saving.KerasFileEditor e keras.saving.load_weights / — leem membros de grupos HDF5 por sem verificação do tipo de link. O h5py / na indexação, portanto um arquivo , ou fornecido por um atacante contendo apenas um link faz com que o Keras leia o conteúdo de .

model.load_weights
indexação direta
desreferencia automaticamente
ExternalLink
SoftLink
.weights.h5
.h5
.keras
arquivos HDF5 arbitrários no sistema de arquivos local da vítima

O Keras já inclui a proteção correta (safe_get_h5_group / safe_get_h5_dataset em saving_lib.py) — estes dois pontos de entrada simplesmente não a chamam.

Resumo

CVECVE-2026-9335
Afetadokeras-team/keras ≤ 3.14.0 (PyPI)
TipoPath Traversal / Exposição de Informações (CWE-22, CWE-200)
CVSS 3.1AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N → 6.5 (Médio)
ImpactoDivulgação de qualquer arquivo HDF5 local que a vítima possa ler
VetorA vítima abre/carrega um arquivo malicioso .weights.h5 / .h5 / .keras
StatusCorrigido no keras 3.15.0 (PR #22899 / #22900); validado no huntr (2026-05-22, mantenedor hertschuh)
RelatorJonathan Paparo (jonathan-paparo)

Conteúdo do repositório

CaminhoO que é
advisory/CVE-2026-9335.mdDocumentação técnica completa: causa raiz, ambos os locais, saída do PoC, correção
poc/poc_file_editor.pyPoC 1 — KerasFileEditor segue um ExternalLink e vaza um h5 da vítima
poc/poc_load_weights.pyPoC 2 — model.load_weights puxa os pesos da vítima via ExternalLink
poc/requirements.txtAmbiente de reprodução fixado
docs/timeline.mdLinha do tempo da divulgação coordenada

Causa raiz (30 segundos)

root@kitploit:~
# keras/src/saving/saving_api.py  (load_weights, branch legado .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 aqui é desreferenciado automaticamente pelo h5py

f["model_weights"] (e a varredura análoga data[key] em file_editor.py) segue de forma transparente um link para outro arquivo. O padrão seguro que o Keras usa em outros lugares verifica previamente o tipo de link:

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

Reproduzir

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

# PoC 1 — KerasFileEditor vaza o conteúdo de um arquivo h5 separado da vítima
KERAS_BACKEND=jax python poc/poc_file_editor.py

# PoC 2 — model.load_weights carrega os pesos de um arquivo da vítima via um ExternalLink
KERAS_BACKEND=jax python poc/poc_load_weights.py

Cada PoC cria seus próprios arquivos h5 descartáveis de "vítima" e "atacante" no diretório temporário do sistema, demonstra o vazamento, imprime *** VULNERABILITY CONFIRMED *** e se limpa ao final. Verificado em keras==3.14.0, Python 3.12.6, backend JAX.

Correção

Direcione ambos os locais através do helper existente safe_get_h5_group, ou adicione uma pré-verificação data.get(key, default=None, getclass=True, getlink=True) que rejeite (h5py.ExternalLink, h5py.SoftLink) antes da indexação. Consulte o advisory para os diffs exatos.

Uso responsável

Este material é publicado para fins defensivos e educacionais após divulgação coordenada e atribuição de CVE. Os PoCs operam apenas em arquivos que eles mesmos criam em um diretório temporário. Não use estas técnicas contra sistemas ou dados que você não está autorizado a testar.

Crédito

Descoberto e relatado por Jonathan Paparo (huntr: jonathan-paparo). Validado pelo mantenedor do keras-team hertschuh.

Baixar ferramenta