Apache Flink arbitrary Jar package upload leads to remote code execution vulnerability recurrence problem (vulnerability warning)

Apache Flink arbitrary Jar package upload leads to remote code execution vulnerability recurrence problem (vulnerability warning)

Vulnerability Description

Apache Flink is an open source platform for distributed stream and batch data processing. At its core, Flink is a streaming dataflow engine that provides data distribution, communication, and fault tolerance capabilities for distributed computing on data streams. Flink builds batch processing on top of the streaming engine, covering local iteration support, managed memory, and program optimization. Recently, security researchers discovered that Apache Flink allows uploading arbitrary jar packages, leading to remote code execution.

Vulnerability Level

High risk

Impact

Apache Flink <=1.9.1

Vulnerability Reproduction

First, download the Apache Flink 1.9.1 installation package and decompress it. Then, go to the bin folder and run ./start-cluster.sh to start the environment. Use the browser to access http://ip:8081 to verify whether it is successful, as shown in the following figure:

Then use the generated jar Trojan file and upload it, as shown in the following figure:

Open msf to monitor and click Submit, and you can see that a shell is successfully returned. As shown in the following figure:

Restoration suggestions

Users are advised to pay attention to the Apache Flink official website and obtain the latest patch for this vulnerability in a timely manner.

Temporary solution suggestions

Set up an IP whitelist to allow only trusted IPs to access the console and add access authentication.

Vulnerability Detection Methods

At present, there is a corresponding public detection POC on GitHub, as shown in the following figure:

Link: https://github.com/LandGrey/flink-unauth-rce

Summarize

The above is the recurrence of the remote code execution vulnerability caused by uploading any Jar package in Apache Flink. I hope it will be helpful to you. If you have any questions, please leave me a message and I will reply to you in time. I would also like to thank everyone for their support of the 123WORDPRESS.COM website!
If you find this article helpful, please feel free to reprint it and please indicate the source. Thank you!

You may also be interested in:
  • A brief discussion on the construction and operation mechanism of the real-time computing framework Flink cluster
  • What data types does Flink support?
  • Detailed explanation of memory management of Flink, a big data processing engine
  • How to use Reactor to perform Flink-like operations
  • A practical tutorial on running Flink tasks in IDEA
  • How to build and test the Flink development environment in IDEA
  • Java lambda expression to implement Flink WordCount process analysis
  • Detailed steps for implementing timeout status monitoring in Apache FlinkCEP
  • Big Data HelloWorld-Flink implements WordCount
  • A brief discussion on Flink's fault-tolerant mechanism: job execution and daemon

<<:  JavaScript to add and delete messages on the message board

>>:  MySQL cross-database transaction XA operation example

Recommend

Detailed tutorial on installation and configuration of nginx under Centos7

Note: The basic directory path for software insta...

JS implements a simple todoList (notepad) effect

The notepad program is implemented using the thre...

MySQL 5.7.18 download and installation process detailed instructions

MySql Download 1. Open the official website and f...

Solution to CSS anchor positioning being blocked by the top fixed navigation bar

Many websites have a navigation bar fixed at the ...

Hidden overhead of Unix/Linux forks

Table of contents 1. The origin of fork 2. Early ...

HTML Form Tag Tutorial (4):

Suppose now you want to add an item like this to ...

How to create Baidu dead link file

There are two types of dead link formats defined b...

Why developers must understand database locks in detail

1.Lock? 1.1 What is a lock? The real meaning of a...

Seven different color schemes for website design experience

The color matching in website construction is ver...

CSS3 timeline animation

Achieve results html <h2>CSS3 Timeline</...

HTML table border control implementation code

Generally, when we use a table, we always give it...

Detailed explanation of this pointing in JS arrow function

Arrow function is a new feature in ES6. It does n...

Understanding what Node.js is is so easy

Table of contents Official introduction to Node.j...