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

Best Practices for Sharing React Code

When any project develops to a certain complexity...

How to install MySQL database on Debian 9 system

Preface Seeing the title, everyone should be thin...

Docker custom network detailed introduction

Table of contents Docker custom network 1. Introd...

Detailed explanation of the update command for software (library) under Linux

When installing packages on an Ubuntu server, you...

Docker cleanup environment operation

Start cleaning carefully! List unused volumes doc...

Detailed explanation of how to use the Vue license plate search component

A simple license plate input component (vue) for ...

A brief discussion on the mysql execution process and sequence

Table of contents 1:mysql execution process 1.1: ...

Analysis of Docker's method for creating local images

The so-called container actually creates a readab...

Detailed explanation of Docker data backup and recovery process

The data backup operation is very easy. Execute t...

Write a publish-subscribe model with JS

Table of contents 1. Scene introduction 2 Code Op...

Simple web page code used in NetEase blog

How to use the code in NetEase Blog: First log in...

Summary and examples of vue3 component communication methods

The communication modes of vue3 components are as...

Top 10 Js Image Processing Libraries

Table of contents introduce 1. Pica 2. Lena.js 3....

How to use Volume to transfer files between host and Docker container

I have previously written an article about file t...