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

202 Free High Quality XHTML Templates (1)

Here 123WORDPRESS.COM presents the first part of ...

Enabling or disabling GTID mode in MySQL online

Table of contents Basic Overview Enable GTID onli...

Nginx defines domain name access method

I'm building Nginx recently, but I can't ...

How to use yum to configure lnmp environment in CentOS7.6 system

1. Installation version details Server: MariaDB S...

Detailed tutorial on building Gitlab server on CentOS8.1

There is no need to say much about the difference...

How to inherit CSS line-height

How is Line-height inherited?Write a specific val...

JavaScript to implement a simple web calculator

background Since I was assigned to a new project ...

Detailed explanation of HTML basics (Part 2)

1. List The list ul container is loaded with a fo...

Native JavaScript message board

This article shares the specific code of JavaScri...

Vue3 navigation bar component encapsulation implementation method

Encapsulate a navigation bar component in Vue3, a...

MySQL 5.7.23 decompression version installation tutorial with pictures and text

Download the MySQL installer Official download ad...

Example of converting spark rdd to dataframe and writing it into mysql

Dataframe is a new API introduced in Spark 1.3.0,...

Reasons and solutions for not being able to detect array changes in Vue2

Table of contents Workaround Why can't I moni...