Apache Flink の任意の Jar パッケージのアップロードにより、リモート コード実行の脆弱性が再発する問題が発生する (脆弱性警告)

Apache Flink の任意の Jar パッケージのアップロードにより、リモート コード実行の脆弱性が再発する問題が発生する (脆弱性警告)

脆弱性の説明

Apache Flink は、分散ストリームおよびバッチ データ処理用のオープン ソース プラットフォームです。 Flink は本質的に、データ ストリーム上の分散コンピューティングにデータ配布、通信、フォールト トレランス機能を提供するストリーミング データフロー エンジンです。 Flink はストリーミング エンジン上にバッチ処理を構築し、ローカル反復サポート、管理メモリ、プログラム最適化をカバーします。最近、セキュリティ研究者は、Apache Flink が任意の jar パッケージのアップロードを許可し、リモート コード実行につながることを発見しました。

脆弱性レベル

高リスク

インパクト

Apache フリンク <=1.9.1

脆弱性の再現

まず、Apache Flink 1.9.1 インストール パッケージをダウンロードして解凍します。次に、bin フォルダーに移動して ./start-cluster.sh を実行し、環境を起動します。次の図に示すように、ブラウザーを使用して http://ip:8081 にアクセスし、成功したかどうかを確認します。

次に、生成された jar トロイの木馬ファイルを使用して、次の図に示すようにアップロードします。

監視するために msf を開き、「送信」をクリックすると、シェルが正常に返されることがわかります。次の図に示すように:

修復の提案

ユーザーは、Apache Flink の公式 Web サイトに注意し、この脆弱性に対する最新のパッチを適時に入手することをお勧めします。

一時的な解決策の提案

信頼できる IP のみがコンソールにアクセスできるように IP ホワイトリストを設定し、アクセス認証を追加します。

脆弱性検出方法

現在、次の図に示すように、GitHub 上に対応する公開検出 POC が存在します。

リンク: https://github.com/LandGrey/flink-unauth-rce

要約する

上記は、Apache Flink に Jar パッケージをアップロードすることで発生するリモート コード実行の脆弱性の再発です。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • リアルタイムコンピューティングフレームワークFlinkクラスタの構築と動作メカニズムについての簡単な説明
  • Flink はどのようなデータ型をサポートしていますか?
  • ビッグデータ処理エンジンFlinkのメモリ管理を詳しく解説
  • Reactor を使用して Flink のような操作を実行する方法
  • IDEA で Flink タスクを実行するための実践的なチュートリアル
  • IDEAでFlink開発環境を構築してテストする方法
  • Flink WordCount プロセス分析を実装するための Java ラムダ式
  • Apache FlinkCEP でタイムアウトステータス監視を実装するための詳細な手順
  • ビッグデータ HelloWorld-Flink は WordCount を実装します
  • Flinkのフォールトトレラントメカニズムに関する簡単な説明:ジョブ実行とデーモン

<<:  MySQL クロスデータベーストランザクション XA 操作の例

>>:  Vueで背景色と透明度を設定する方法

推薦する

Firebug ツールを使用して iPad でページをデバッグする

iPad でページをデバッグするにはどうすればいいですか? iOS 5 をご利用の場合、iPad の...

JS の querySelector メソッドと getElementById メソッドの違い

目次1. 概要1.1 querySelector() と querySelectorAll() の使...

CSS フィルターを使用してマウスオーバー効果を記述する例

CSSフィルターを使用してマウスオーバー効果を記述する <div class="fi...

Linux 上の LAN 内のすべてのホスト名 (コンピュータ名) をすばやく一覧表示するスクリプト

最近、LAN 内のすべてのホスト名を一覧表示する必要があります (SMB プロトコル)。しかし、fi...

MySQL8の再帰メソッドの使い方を教える

以前、カスタム関数を使用して MySQL でツリー構造を再帰的にクエリする方法についての記事を書きま...

LeetCode の SQL 実装 (182. 重複するメールボックス)

[LeetCode] 182.重複メールPerson という名前のテーブル内のすべての重複メールを...

MySQL information_schema データベースの詳細な説明

1. 概要information_schema データベースは performance_schema...

CSS でハートを描く 3 つの方法

以下では、CSS を使用してハートの形を描く 3 つの方法を紹介します。実装プロセスは非常にシンプル...

JavaScript関数導入の詳しい説明

目次機能紹介関数関数の作成コンストラクタは関数を作成する関数宣言は関数を作成する関数式関数を作成する...

MySQL の基本クイックスタート知識のまとめ (マインドマップ付き)

目次序文1. データベースの基礎知識1. データベースとは何ですか? 2. データベースの分類3. ...

IDEA が Docker を統合してリモート展開を実現するための手順

1. Dockerサーバーへのリモートアクセスを有効にするdocker が配置されているリモート サ...

CSS設定div背景画像実装コード

コンポーネントに背景画像コントロールを追加するには、次の 2 つの手順だけが必要です。 <表示...

ウェブページでグレーまたはブラックモードを実現するための CSS3 フィルターコード

フロントエンドcss3 フィルターは、Web ページのグレー効果を実現できるだけでなく、ナイト モー...

MySQL 永続統計の詳細な説明

1. 永続的な統計情報の重要性:統計は、MySQL が実行プランを生成するためのガイドとして使用され...

iframeをカプセル化するvueコンポーネントを開発する

目次1. コンポーネントの紹介2. コンポーネントの内部構造とロジック1. コード組織構造2. マッ...