Hugging Faceの人気のあるオープンソースロボティクス機械学習フレームワークであるLeRobotで、重大なリモートコード実行(RCE)脆弱性が発見されました。 ロボティクス機械学習フレームワーク
CVE-2026-25874として追跡されているこの欠陥は、最大CVSS重大度スコア9.8を持ち、認証されていない攻撃者が影響を受けたサーバー上で任意のシステムコマンドを実行することを可能にします。
GitHubで21,500個以上のスターを持つLeRobotのMLコミュニティでの広範な採用により、これは重大なセキュリティの懸念となります。
この脆弱性は、フレームワークの非同期推論モジュールに根ざしており、ポリシー計算を別のGPUサーバーにオフロードします。
このアーキテクチャはgRPC PolicyServerを使用してロボットクライアントとサーバー間の通信を管理します。
ただし、サーバーはPythonの本質的に安全でないpickle.loads()関数を使用して、複数のリモートプロシージャコール(RPC)ハンドラー全体でネットワークから受け取ったデータをデシリアライズします。
アーキテクチャ上の欠陥を悪化させるもので、gRPCチャネルはadd_insecure_port()で初期化され、トランスポート層セキュリティ(TLS)と認証がありません。
その結果、ポートへのネットワークアクセス権を持つ悪意のあるアクターはカスタムシリアライズペイロードを送信でき、完全なシステム危殆化を実現できます。
技術的な詳細と悪用
chocapikkによると、セキュリティの弱点は特定のRPCエンドポイント、特にSendPolicyInstructionsとSendObservations内に存在します。
両方のハンドラーは生バイトフィールドを含む受信protobufメッセージを処理し、厳密な型検証を実行する前にpickleを使用してデシリアライズします。
攻撃者はデシリアライズ時にシステムコマンドを実行する悪意のあるPythonオブジェクトを作成することでこれを悪用できます。
isinstance()などの型検証チェックはオブジェクトがデシリアライズされた後にのみ発生するため、悪意のあるRCEペイロードはサーバーが異常なデータ構造を拒否する前に実行されます。
注目すべきことに、コードベースはこれらの正確な行のセキュリティリンター警告を抑制する#nosecコメントを含んでおり、開発者がリスクの警告を受けたが、それをバイパスすることを選択したことを示しています。
皮肉なことに、どちらのエンドポイントもpickleシリアライズを必要としません。処理するデータ構造は主に文字列、整数、辞書、テンサーで構成されています。これらはJSON、標準protobufフィールド、またはHugging Faceの安全な形式を使用して安全に送信できます。
デフォルトでは、サーバーはlocalhostにバインドされ、カジュアルで孤立した展開での露出を制限します。
ただし、計算を専用GPUサーバーにオフロードする必要のある本番環境では、管理者は通常、外部ネットワークアクセスを許可するためにサービスを0.0.0.0にバインドします。
これらの構成では、攻撃者が高度なフィンガープリントなしで簡単に悪意のあるペイロードをばら撒くことができるため、サーバーはネットワーク全体の自動化された悪用に対して非常に脆弱になります。
CVE-2026-25874を修復するために、LeRobotを展開する組織は以下のアーキテクチャの変更を実装することを強く推奨されます:
- Pickleシリアライゼーション削除:pickleから、JSON、ネイティブprotobufフィールド、またはネットワークデータ処理用のsafetensorsなどのより安全なシリアライゼーション形式に移行します。
- TLS暗号化の実装:add_insecure_port()をadd_secure_port()に置き換えてネットワークトラフィックを暗号化することでデータの整合性を保護します。
- 認証の強制:gRPCインターセプターを導入して、すべての受信リモートリクエストに対する堅牢なトークンベースの認証を強制します。
この脆弱性は、機械学習エコシステムの繰り返されるシステム的なパターンを浮き彫りにしています:基礎的なセキュリティよりもプロトタイピング利便性を優先しています。
Hugging Faceが機械学習データのpickleの正確な危険性に対抗するために特に開発したsafetensorsを考えると、彼ら自身のロボティクスフレームワークにこのデシリアライゼーション欠陥が存在することは、安全なコーディング慣行の重要性の厳しい思い出しとなります。
翻訳元: https://gbhackers.com/hugging-face-lerobot-flaw/