Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-9335-keras-hdf5-externallink — CVE-2026-9335: KerasFileEditor と load_weights は h5py の ExternalLinks を追跡し、keras ≤ 3.14.0 において任意のローカル HDF5 ファイルの内容を開示します。アドバイザリ + 検証済み 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 は h5py の ExternalLinks を追跡し、keras ≤ 3.14.0 において任意のローカル HDF5 ファイルの内容を開示します。アドバイザリ + 検証済み PoC。

リポジトリを見る
4時間40分前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2026-9335 — Keras HDF5 ExternalLink によるローカルファイル内容の開示

CVE CVSS CWE-22 Affected Fixed

2つの公開Keras API — keras.saving.KerasFileEditor と keras.saving.load_weights / model.load_weights — は、リンクタイプのチェックを行わずに でHDF5グループメンバーを読み取ります。h5py はインデックス時に / をするため、攻撃者が提供した のみを含む 、、または ファイルによって、 Keras はの内容を読み取ることになります。

直接インデックス
ExternalLink
SoftLink
自動的にデリファレンス
ExternalLink
.weights.h5
.h5
.keras
被害者のローカルファイルシステム上の任意のHDF5ファイル

Keras にはすでに正しいガード(saving_lib.py の safe_get_h5_group / safe_get_h5_dataset)が同梱されています — これらの2つのエントリポイントは単にそれを呼び出していないだけです。

概要

CVECVE-2026-9335
影響を受けるバージョンkeras-team/keras ≤ 3.14.0 (PyPI)
タイプパストラバーサル / 情報漏えい (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 branch)
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"](および file_editor.py 内の同様の data[key] ウォーク)は、 別のファイルへのリンクを透過的に辿ります。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 ヘルパー経由でルーティングするか、インデックス前に (h5py.ExternalLink, h5py.SoftLink) を拒否する data.get(key, default=None, getclass=True, getlink=True) 事前チェックを追加します。正確な差分については advisory を参照してください。

責任ある使用

この資料は、協調開示とCVE割り当ての後、防御的および教育的目的で公開されています。 PoCは、一時ディレクトリ内で自分自身が作成したファイルに対してのみ動作します。 テストを許可されていないシステムやデータに対してこれらの技術を使用しないでください。

クレジット

Jonathan Paparo によって発見・報告されました(huntr: jonathan-paparo)。keras-team メンテナ hertschuh によって検証されました。

ツールをダウンロード