メインコンテンツへジャンプ
ログイン
      • Databricks を知る
        • エグゼクティブ向け
          • スタートアップ向け
            • レイクハウスアーキテクチャ
              • Mosaic Research
              • 導入事例
                • 注目の導入事例
                  • 導入事例一覧へ
                  • パートナー
                    • クラウドプロバイダ
                      Databricks on AWS、Azure、GCP
                      • コンサルティング・SI
                        Databricks の構築・デプロイ、Databricks への移行のエキスパート
                        • 技術パートナー
                          既存のツールをレイクハウスに接続
                          • C&SI パートナー
                            レイクハウスの構築・デプロイメント、レイクハウスへの移行
                            • データパートナー
                              データコンシューマーのエコシステムにアクセス
                              • パートナーソリューション
                                業界・移行のニーズに応じたカスタムソリューション
                                • Databricks で構築
                                  ビジネスの創造・マーケティング・成長
                                • Databricks プラットフォーム
                                  • プラットフォームの概要
                                    データ・分析・AI のための統合プラットフォーム
                                    • データ管理
                                      データの信頼性・セキュリティ・パフォーマンス
                                      • 共有
                                        オープン、セキュア、ゼロコピーでのデータ共有
                                        • データウェアハウジング
                                          バッチ、ストリーミングデータのための ETL とオーケストレーション
                                          • ガバナンス
                                            データ・分析・AI のための統合ガバナンス
                                            • リアルタイム分析
                                              リアルタイム分析、AI、アプリケーションをシンプルに
                                              • 人工知能(AI)
                                                ML と生成 AI アプリケーションの構築とデプロイメント
                                                • データエンジニアリング
                                                  バッチ、ストリーミングデータのための ETL とオーケストレーション
                                                  • BI
                                                    実世界データのインテリジェント分析
                                                    • データサイエンス
                                                      データサイエンスの大規模な連携
                                                    • 統合とデータ
                                                      • マーケットプレイス
                                                        データ、分析、AI のためのオープンマーケットプレイス
                                                        • IDE 統合
                                                          お気に入りの IDE(統合開発環境)でレイクハウスを構築
                                                          • パートナーコネクト
                                                            Databricks エコシステムの検索と統合
                                                          • ご利用料金
                                                            • Databricks のご利用料金
                                                              料金設定、DBU、その他
                                                              • コスト計算ツール
                                                                クラウド利用でのコンピュートコストの試算
                                                              • オープンソース
                                                                • オープンソーステクノロジー
                                                                  プラットフォームを支えるイノベーションをもっと詳しく
                                                                • 業界向け Databricks
                                                                  • 通信
                                                                    • メディア・エンターテイメント
                                                                      • 金融サービス
                                                                        • 官公庁・公共機関
                                                                          • 医療・ライフサイエンス
                                                                            • リテール・消費財
                                                                              • 製造
                                                                                • 全て見る
                                                                                • クロスインダストリーソリューション
                                                                                  • サイバーセキュリティ
                                                                                    • マーケティング
                                                                                    • 移行・デプロイメント
                                                                                      • データの移行
                                                                                        • プロフェッショナルサービス
                                                                                        • ソリューションアクセラレータ
                                                                                          • ソリューションアクセラレータ一覧
                                                                                            成果を加速
                                                                                          • トレーニング・認定試験
                                                                                            • 学習の概要
                                                                                              トレーニング、認定、イベントなどのハブ
                                                                                              • トレーニング概要
                                                                                                ニーズに合わせたカリキュラムを探す
                                                                                                • Databricks アカデミー
                                                                                                  Databricks ラーニングプラットフォームにサインインする
                                                                                                  • 認定
                                                                                                    スキル・認定で差別化を図る
                                                                                                    • 大学との連携
                                                                                                      Databricks を教材として活用
                                                                                                    • イベント
                                                                                                      • DATA+AI サミット
                                                                                                        • Data+AI ワールドツアー
                                                                                                          • Data Intelligence Days
                                                                                                            • イベントカレンダー
                                                                                                            • ブログ・ポッドキャスト
                                                                                                              • Databricks ブログ
                                                                                                                最新情報、製品発表、その他の情報
                                                                                                                • Databricks Mosaic AIリサーチブログ
                                                                                                                  AI世代に関する最新リサーチ
                                                                                                                  • Data Brew ポッドキャスト
                                                                                                                    ご相談・お問い合わせ
                                                                                                                    • ポッドキャスト:Data+AI のチャンピオン
                                                                                                                      イノベーションを支えるデータリーダーのインサイト
                                                                                                                    • お役立ちリソース
                                                                                                                      • カスタマーサポート
                                                                                                                        • ドキュメント
                                                                                                                          • コミュニティ
                                                                                                                          • もっと詳しく
                                                                                                                            • リソースセンター
                                                                                                                              • デモセンター
                                                                                                                              • 企業概要
                                                                                                                                • Databricks について
                                                                                                                                  • 経営陣
                                                                                                                                    • Databricks Ventures
                                                                                                                                      • ご相談・お問い合わせ
                                                                                                                                      • 採用情報
                                                                                                                                        • 採用情報概要
                                                                                                                                          • 求人情報
                                                                                                                                          • プレス・ニュース記事
                                                                                                                                            • ニュースルーム
                                                                                                                                              • 受賞歴と業界評価
                                                                                                                                              • セキュリティと信頼
                                                                                                                                                • セキュリティと信頼
                                                                                                                                            • 是非ご検討ください!
                                                                                                                                            • デモを見る
                                                                                                                                            • ログイン
                                                                                                                                            • Databricks 無料トライアル
                                                                                                                                            1. ブログ
                                                                                                                                            2. /
                                                                                                                                              オープンソース
                                                                                                                                            3. /
                                                                                                                                              記事

                                                                                                                                            GGML GGUF ファイルフォーマットの脆弱性

                                                                                                                                            GGML GGUF File Format Vulnerabilities

                                                                                                                                            Published: March 22, 2024

                                                                                                                                            オープンソース6分で読めます

                                                                                                                                            Neil Archibald による投稿

                                                                                                                                            この投稿を共有する

                                                                                                                                            最新の投稿を通知します

                                                                                                                                            GGUFファイルフォーマットは、GGMLライブラリのモデル重みの保存と読み込みに使用されるバイナリファイルフォーマットです。 ライブラリのドキュメントには、以下のような形式が記述されています:

                                                                                                                                            "GGUFは、GGMLによる推論のためのモデルや、GGMLに基づく実行形式を保存するためのファイルフォーマットです。 GGUFは、モデルの読み込みと保存を高速化し、読みやすくするために設計されたバイナリフォーマットです。 モデルは伝統的にPyTorchや他のフレームワークを使用して開発され、GGMLで使用するためにGGUFに変換されます。"

                                                                                                                                            GGUFフォーマットは、学習済みの機械学習モデルを配布するために最近普及しており、低レベルのコンテキストからモデルを利用する際に、Llama-2で最も一般的に使用されるフォーマットの1つとなっています。 llama.cpp、pythonのllmモジュール、Huggingfaceのようなggufファイルをロードするときのctransformersライブラリなど、このローダーにデータを提供するために使用できるベクターが複数あります。

                                                                                                                                            GGMLライブラリは入力ファイルに対して不十分な検証を行うため、解析中に潜在的に悪用可能なメモリ破壊の脆弱性を含んでいます。 攻撃者はこれらの脆弱性を利用し、細工したggufファイルを提供することで、被害者のコンピュータ上でコードを実行する可能性があります。

                                                                                                                                            このブログでは、悪用がかなり簡単なヒープ・オーバーフローをいくつか見ていきます。 ファイルの境界チェックはほとんど行われないため、境界のないユーザー入力やラップされた値でアロケーションが実行されるケースは他にも数多くあります。 また、メモリ割り当てを含め、コードベース全体でチェックされている戻り値がほとんどないことも注目に値します。 すべてのヒープオーバーフローは、gguf_init_from_file()エントリポイントを経由して到達可能です。

                                                                                                                                            タイムライン

                                                                                                                                            1. 2024年1月23日ベンダーに連絡、バグ報告
                                                                                                                                            2. 2024年1月25日CVEの要請
                                                                                                                                            3. 2024年1月28日GGMLのGithubで修正をレビューしました。
                                                                                                                                            4. 2024年1月29日パッチを master ブランチにマージ

                                                                                                                                            CVE-2024-25664 ヒープオーバーフロー #1: KV カウントのチェック漏れ

                                                                                                                                            保存されたモデルをロードする場合、ライブラリへのエントリーポイントは、通常、gguf_init_from_file()関数(以下に注釈付きで示されています)を介して行われます。 この関数は、マジック値" GGUF" をチェックする前に、ファイルから gguf ヘッダーを読み込むことから始めます。この後、ファイル内のキーと値のペアが読み込まれ、解析されます。

                                                                                                                                            https://github.com/ggerganov/ggml/blob/faab2af1463aa556899b72 1289efcbf50c557f55/src/ggml.c#L19215

                                                                                                                                            ラップアロケーションの内容はgguf_kv構造体の配列で、ファイルから読み込んだデータのキーと値のペアを格納するために使用されます。 構造の定義は以下の通り:

                                                                                                                                            https://github.com/ggerganov/ggml/blob/faab2af1463aa556899b72 1289efcbf50c557f55/src/ggml.c#L19133

                                                                                                                                            これにより、隣接するメモリーを、valueフィールドを使って私たちがコントロールするデータか、keyフィールドの場合は私たちがコントロールするデータへのポインターで上書きすることができます。 これらはヒープを悪用するためのかなり強力なプリミティブです。 構文解析の性質上、ヒープの状態をかなり任意に操作することも可能です。 これによって搾取も容易になるはずです。

                                                                                                                                            以下のPoCコードでは、0xe0のアロケーションが発生し、n_kv値は0x555555555555aで、チャンクへの書き込みループ・カウンタとして使用されます。 各書き込みは0x30サイズ(sizeof(struct gguf_kv))で、その結果、0x500のkvを含むヒープメモリが破壊されます。 ループを終了させるには、単純にファイルを早めに終了させ、EOFを読み込んでエラー状態にします。 その後にヒープを使用すると、オーバーフローによるチェックサムが失敗し、abort()エラーメッセージが表示されます。

                                                                                                                                            CVE-2024-25665 ヒープオーバーフロー #2: 文字列型の読み込み

                                                                                                                                            ファイルから文字列型データを読み込むために繰り返し使用される関数gguf_fread_str()にも、ヒープオーバーフローの脆弱性が存在する可能性があります。

                                                                                                                                            以下のコードでわかるように、この関数は長さエンコードされた文字列を検証なしでファイルから直接読み込みます。 まず、gguf_fread_el() を使って文字列の長さを読み込みます。 次に、任意の入力サイズ+1の割り当てが行われます。 アロケータがこのサイズを受け取ると、アロケータが使用する可能な最小のクアンタのサイズのチャンクを返します。 これが終わると、fread()関数を使って、大きなアンラップ・サイズを使ってコピーが実行されます。

                                                                                                                                            https://github.com/ggerganov/ggml/blob/faab2af1463aa556899b72 1289efcbf50c557f55/src/ggml.c#L19177

                                                                                                                                            CVE-2024-25666 ヒープオーバーフロー #3: テンソルカウントの未チェック

                                                                                                                                            ファイル中のgguf_tensor_infosを解析する際に、#1 と非常によく似たヒープオーバーフローが発生します。 ctx->header.n_tensorsの値がチェックされず、構造体のサイズにもう一度乗算されるため、ラップが発生し、アロケーションが小さくなります。 この後、ループが各要素を順番にコピーし、ヒープがオーバーフローします。 以下のコードはこの脆弱性を示しています。

                                                                                                                                            https://github.com/ggerganov/ggml/blob/faab2af1463aa556899b72 1289efcbf50c557f55/src/ggml.c#L19345

                                                                                                                                            CVE-2024-25667 ヒープオーバーフロー #4: ユーザーが指定した配列要素

                                                                                                                                            ファイルからkv値をアンパックするとき、アンパックできる型の1つは配列型(GGUF_TYPE_ARRAY)です。 配列をパースするとき、コードは配列の型と、その型の要素数を読み取ります。 そして、GGUF_TYPE_SIZE配列の型サイズと要素数を掛け合わせて、データを格納するためのアロケーションサイズを計算します。 繰り返しになりますが、配列の要素数はユーザーが任意に指定できるため、この計算が折り返される可能性があり、その結果、小さなメモリ割り当てと大きなコピーループが発生します。 配列データはコンパクトであるため、ヒープ内容のオーバーフローは非常に抑制されます。

                                                                                                                                            https://github.com/ggerganov/ggml/blob/faab2af1463aa556899b72 1289efcbf50c557f55/src/ggml.c#L19297

                                                                                                                                            CVE-2024-25668 ヒープオーバフロー #5: kv 文字列型配列のアンパッキング

                                                                                                                                            また、文字列型の配列を扱う際に、配列kvのアンパック時にヒープオーバーフローの問題が発生します。 文字列を解析する場合、再び、要素カウントは、チェックされていないファイルから直接読み込まれます。 この値はgguf_str構造体のサイズと乗算され、結果としてラップされ、nに対して小さなアロケーションになります。 続いて、チャンクに入力するために、nの値までループが実行されます。 この結果、文字列構造体の内容が境界外に書き込まれます。

                                                                                                                                            https://github.com/ggerganov/ggml/blob/faab2af1463aa556899b72 1289efcbf50c557f55/src/ggml.c#L19318

                                                                                                                                            束縛されない配列インデックス

                                                                                                                                            GGUFファイル内の配列のパース中に、前述のように、型の必要サイズは、GGUF_TYPE_SIZE[]配列(以下に示す)を介して割り当てのために決定されます。

                                                                                                                                            https://github.com/ggerganov/ggml/blob/faab2af1463aa556899b72 1289efcbf50c557f55/src/ggml.c#L19076

                                                                                                                                            配列にインデックスを付けることで、乗算によって割り当てサイズを計算するために適切なサイズが返されます。

                                                                                                                                            この配列へのアクセスに使用されるインデックスはファイルから直接読み取られ、サニタイズされていません。したがって、攻撃者はこの配列の境界外のインデックスを指定し、整数ラップを引き起こすサイズを返す可能性があります。 これはアロケーションとコピーの両方で使われます。

                                                                                                                                            次のコードはこのパスを示しています:

                                                                                                                                            https://github.com/ggerganov/ggml/blob/faab2af1463aa556899b72 1289efcbf50c557f55/src/ggml.c#L19300

                                                                                                                                            まとめ

                                                                                                                                            これらの脆弱性は、攻撃者が機械学習モデルを利用してマルウェアを配布し、開発者を危険にさらすための新たな手段を提供することになります。 この新しい、そして急速に成長している研究分野のセキュリティ態勢は、セキュリティレビューに対するより厳密なアプローチから大きな恩恵を受けます。 その中で、DatabricksはGGML.aiのチームと緊密に連携し、これらの問題に迅速に対処しました。 コミット6b14d73以降、この投稿で取り上げた 6 件の脆弱性すべてを修正したパッチが利用可能になっています。

                                                                                                                                            最新の投稿を通知します

                                                                                                                                            関連記事

                                                                                                                                            この投稿を共有する

                                                                                                                                            Databricksの投稿を見逃さないようにしましょう

                                                                                                                                            興味のあるカテゴリを購読して、最新の投稿を受信トレイに届けましょう

                                                                                                                                            Sign up

                                                                                                                                            次は何ですか?

                                                                                                                                            Introducing Apache Spark™ 3.5

                                                                                                                                            オープンソース

                                                                                                                                            September 14, 2023/4分で読めます

                                                                                                                                            Apache Spark™ 3.5のご紹介

                                                                                                                                            Engineering blog

                                                                                                                                            オープンソース

                                                                                                                                            January 3, 2024/2分で読めます

                                                                                                                                            PySparkによるパラメータ化クエリ

                                                                                                                                            databricks logo
                                                                                                                                            Databricks を選ぶ理由
                                                                                                                                            Databricks を選ぶ理由
                                                                                                                                            • エグゼクティブ向け
                                                                                                                                            • スタートアップ向け
                                                                                                                                            • レイクハウスアーキテクチャ
                                                                                                                                            • Mosaic Research
                                                                                                                                            導入事例
                                                                                                                                            • 全て見る
                                                                                                                                            • 注目の導入事例
                                                                                                                                            パートナー
                                                                                                                                            • クラウドプロバイダ
                                                                                                                                            • 技術パートナー
                                                                                                                                            • データパートナー
                                                                                                                                            • Databricks で構築
                                                                                                                                            • コンサルティング・SI
                                                                                                                                            • C&SI パートナー
                                                                                                                                            • パートナーソリューション
                                                                                                                                            Databricks を選ぶ理由
                                                                                                                                            • エグゼクティブ向け
                                                                                                                                            • スタートアップ向け
                                                                                                                                            • レイクハウスアーキテクチャ
                                                                                                                                            • Mosaic Research
                                                                                                                                            導入事例
                                                                                                                                            • 全て見る
                                                                                                                                            • 注目の導入事例
                                                                                                                                            パートナー
                                                                                                                                            • クラウドプロバイダ
                                                                                                                                            • 技術パートナー
                                                                                                                                            • データパートナー
                                                                                                                                            • Databricks で構築
                                                                                                                                            • コンサルティング・SI
                                                                                                                                            • C&SI パートナー
                                                                                                                                            • パートナーソリューション
                                                                                                                                            製品
                                                                                                                                            レイクハウスプラットフォーム
                                                                                                                                            • プラットフォーム
                                                                                                                                            • 共有
                                                                                                                                            • データガバナンス
                                                                                                                                            • 人工知能(AI)
                                                                                                                                            • DBRX
                                                                                                                                            • データ管理
                                                                                                                                            • データウェアハウス
                                                                                                                                            • データストリーミング
                                                                                                                                            • データエンジニアリング
                                                                                                                                            • データサイエンス
                                                                                                                                            ご利用料金
                                                                                                                                            • 料金設定の概要
                                                                                                                                            • 料金計算ツール
                                                                                                                                            オープンソース
                                                                                                                                            統合とデータ
                                                                                                                                            • マーケットプレイス
                                                                                                                                            • IDE 統合
                                                                                                                                            • パートナーコネクト
                                                                                                                                            レイクハウスプラットフォーム
                                                                                                                                            • プラットフォーム
                                                                                                                                            • 共有
                                                                                                                                            • データガバナンス
                                                                                                                                            • 人工知能(AI)
                                                                                                                                            • DBRX
                                                                                                                                            • データ管理
                                                                                                                                            • データウェアハウス
                                                                                                                                            • データストリーミング
                                                                                                                                            • データエンジニアリング
                                                                                                                                            • データサイエンス
                                                                                                                                            ご利用料金
                                                                                                                                            • 料金設定の概要
                                                                                                                                            • 料金計算ツール
                                                                                                                                            統合とデータ
                                                                                                                                            • マーケットプレイス
                                                                                                                                            • IDE 統合
                                                                                                                                            • パートナーコネクト
                                                                                                                                            ソリューション
                                                                                                                                            業種別
                                                                                                                                            • 通信
                                                                                                                                            • 金融サービス
                                                                                                                                            • 医療・ライフサイエンス
                                                                                                                                            • 製造
                                                                                                                                            • メディア・エンタメ
                                                                                                                                            • 官公庁・公共機関
                                                                                                                                            • リテール・消費財
                                                                                                                                            • 全て表示
                                                                                                                                            クロスインダストリーソリューション
                                                                                                                                            • サイバーセキュリティ
                                                                                                                                            • マーケティング
                                                                                                                                            データの移行
                                                                                                                                            プロフェッショナルサービス
                                                                                                                                            ソリューションアクセラレータ
                                                                                                                                            業種別
                                                                                                                                            • 通信
                                                                                                                                            • 金融サービス
                                                                                                                                            • 医療・ライフサイエンス
                                                                                                                                            • 製造
                                                                                                                                            • メディア・エンタメ
                                                                                                                                            • 官公庁・公共機関
                                                                                                                                            • リテール・消費財
                                                                                                                                            • 全て表示
                                                                                                                                            クロスインダストリーソリューション
                                                                                                                                            • サイバーセキュリティ
                                                                                                                                            • マーケティング
                                                                                                                                            リソース
                                                                                                                                            ドキュメント
                                                                                                                                            カスタマーサポート
                                                                                                                                            コミュニティ
                                                                                                                                            トレーニング・認定試験
                                                                                                                                            • トレーニング概要
                                                                                                                                            • トレーニング
                                                                                                                                            • 認定
                                                                                                                                            • 大学との連携
                                                                                                                                            • Databricks アカデミー
                                                                                                                                            イベント
                                                                                                                                            • DATA+AI サミット
                                                                                                                                            • Data+AI ワールドツアー
                                                                                                                                            • Data Intelligence Days
                                                                                                                                            • イベントカレンダー
                                                                                                                                            ブログ・ポッドキャスト
                                                                                                                                            • Databricks ブログ
                                                                                                                                            • Databricks Mosaic AIリサーチブログ
                                                                                                                                            • Data Brew ポッドキャスト
                                                                                                                                            • Data+AI のチャンピオンシリーズ
                                                                                                                                            トレーニング・認定試験
                                                                                                                                            • トレーニング概要
                                                                                                                                            • トレーニング
                                                                                                                                            • 認定
                                                                                                                                            • 大学との連携
                                                                                                                                            • Databricks アカデミー
                                                                                                                                            イベント
                                                                                                                                            • DATA+AI サミット
                                                                                                                                            • Data+AI ワールドツアー
                                                                                                                                            • Data Intelligence Days
                                                                                                                                            • イベントカレンダー
                                                                                                                                            ブログ・ポッドキャスト
                                                                                                                                            • Databricks ブログ
                                                                                                                                            • Databricks Mosaic AIリサーチブログ
                                                                                                                                            • Data Brew ポッドキャスト
                                                                                                                                            • Data+AI のチャンピオンシリーズ
                                                                                                                                            企業情報
                                                                                                                                            企業概要
                                                                                                                                            • Databricks について
                                                                                                                                            • 経営陣
                                                                                                                                            • Databricks Ventures
                                                                                                                                            • ご相談・お問い合わせ
                                                                                                                                            採用情報
                                                                                                                                            • 採用情報概要
                                                                                                                                            • 求人情報
                                                                                                                                            プレス・ニュース記事
                                                                                                                                            • ニュースルーム
                                                                                                                                            • 受賞歴と業界評価
                                                                                                                                            セキュリティと信頼
                                                                                                                                            企業概要
                                                                                                                                            • Databricks について
                                                                                                                                            • 経営陣
                                                                                                                                            • Databricks Ventures
                                                                                                                                            • ご相談・お問い合わせ
                                                                                                                                            採用情報
                                                                                                                                            • 採用情報概要
                                                                                                                                            • 求人情報
                                                                                                                                            プレス・ニュース記事
                                                                                                                                            • ニュースルーム
                                                                                                                                            • 受賞歴と業界評価
                                                                                                                                            databricks logo

                                                                                                                                            Databricks Inc.
                                                                                                                                            160 Spear Street, 15th Floor
                                                                                                                                            San Francisco, CA 94105
                                                                                                                                            1-866-330-0121

                                                                                                                                            採用情報

                                                                                                                                            © Databricks 2025. All rights reserved. Apache, Apache Spark, Spark and the Spark logo are trademarks of the Apache Software Foundation.

                                                                                                                                            • プライバシー通知
                                                                                                                                            • |利用規約
                                                                                                                                            • |現代奴隷法に関する声明
                                                                                                                                            • |カリフォルニア州のプライバシー権利
                                                                                                                                            • |プライバシー設定