Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-9335-keras-hdf5-externallink — CVE-2026-9335: KerasFileEditor e load_weights seguono gli ExternalLinks di h5py, divulgando il contenuto arbitrario di file HDF5 locali in keras ≤ 3.14.0. Advisory + PoC verificati. | Kitploit
Strumenti/GitHubGitHub/paparojonathan/cve-2026-9335-keras-hdf5-externallink
Analisi delle VulnerabilitàExploitPaper e RicercaApprendimento e FormazioneRisorse Curate
GitHubpaparojonathan/cve-2026-9335-keras-hdf5-externallink

CVE-2026-9335-keras-hdf5-externallink

CVE-2026-9335: KerasFileEditor e load_weights seguono gli ExternalLinks di h5py, divulgando il contenuto arbitrario di file HDF5 locali in keras ≤ 3.14.0. Advisory + PoC verificati.

Vedi Repository
4 ore faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-9335 — Divulgazione del contenuto di file locali HDF5 tramite ExternalLink in Keras

CVE CVSS CWE-22 Affected Fixed

Due API pubbliche di Keras — keras.saving.KerasFileEditor e keras.saving.load_weights / — leggono i membri dei gruppi HDF5 tramite senza un controllo del tipo di link. h5py / durante l'indicizzazione, quindi un file , o fornito da un attaccante e contenente solo un link induce Keras a leggere il contenuto di .

model.load_weights
indicizzazione diretta
dereferenzia automaticamente
ExternalLink
SoftLink
.weights.h5
.h5
.keras
file HDF5 arbitrari sul filesystem locale della vittima

Keras include già il controllo corretto (safe_get_h5_group / safe_get_h5_dataset in saving_lib.py) — questi due punti di ingresso semplicemente non lo chiamano.

In sintesi

CVECVE-2026-9335
Versioni affettekeras-team/keras ≤ 3.14.0 (PyPI)
TipoPath Traversal / Esposizione di informazioni (CWE-22, CWE-200)
CVSS 3.1AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N → 6.5 (Medio)
ImpattoDivulgazione di qualsiasi file HDF5 locale che la vittima può leggere
VettoreLa vittima apre/carica un file .weights.h5 / .h5 / .keras dannoso
StatoCorretto in keras 3.15.0 (PR #22899 / #22900); validato su huntr (2026-05-22, manutentore hertschuh)
SegnalatoreJonathan Paparo (jonathan-paparo)

Contenuto del repository

PercorsoDescrizione
advisory/CVE-2026-9335.mdDocumentazione tecnica completa: causa principale, entrambi i punti, output del PoC, correzione
poc/poc_file_editor.pyPoC 1 — KerasFileEditor segue un ExternalLink e divulga un h5 della vittima
poc/poc_load_weights.pyPoC 2 — model.load_weights recupera i pesi di una vittima tramite ExternalLink
poc/requirements.txtAmbiente di riproduzione con versioni bloccate
docs/timeline.mdCronologia della divulgazione coordinata

Causa principale (in 30 secondi)

root@kitploit:~
# keras/src/saving/saving_api.py  (load_weights, ramo 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"]      # <-- un ExternalLink qui viene dereferenziato automaticamente da h5py

f["model_weights"] (e l'analoga scansione data[key] in file_editor.py) segue in modo trasparente un link verso un altro file. Il pattern sicuro che Keras usa altrove verifica prima il tipo di 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__}")

Riproduzione

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

# PoC 1 — KerasFileEditor divulga il contenuto di un file h5 separato della vittima
KERAS_BACKEND=jax python poc/poc_file_editor.py

# PoC 2 — model.load_weights carica i pesi di un file della vittima tramite un ExternalLink
KERAS_BACKEND=jax python poc/poc_load_weights.py

Ogni PoC crea i propri file h5 "vittima" e "attaccante" usa-e-getta nella directory temporanea di sistema, dimostra la divulgazione, stampa *** VULNERABILITY CONFIRMED *** e si pulisce da solo. Verificato su keras==3.14.0, Python 3.12.6, backend JAX.

Correzione

Instradare entrambi i punti attraverso l'helper esistente safe_get_h5_group, oppure aggiungere un pre-controllo data.get(key, default=None, getclass=True, getlink=True) che rifiuti (h5py.ExternalLink, h5py.SoftLink) prima dell'indicizzazione. Consultare la documentazione per i diff esatti.

Uso responsabile

Questo materiale è pubblicato per scopi difensivi ed educativi dopo la divulgazione coordinata e l'assegnazione del CVE. I PoC operano solo su file che creano essi stessi in una directory temporanea. Non utilizzare queste tecniche contro sistemi o dati che non sei autorizzato a testare.

Crediti

Scoperto e segnalato da Jonathan Paparo (huntr: jonathan-paparo). Validato dal manutentore di keras-team hertschuh.

Scarica lo strumento