IMPORTANT:AttackDefense Labs is included with a Pentester Academy subscription! Upgrade Now to access over 1800+ Labs.

Already a Pentester Academy student? Your access will continue uninterrupted. Please use the same Google account to login here.

Not a Pentester Academy student? Try our Free Communitiy Labs

GeoServer (JT-Jiffle) Deserialization RCE (CVE-2022-24847)

cve-2022 | Level: Easy  | Total Lab Runs: 0 | Premium Lab

Lab Scoreboard

What are GeoServer and JT-Jiffle?

GeoServer is an open-source server for sharing geospatial data. The server implements industry-standard OGC protocols such as Web Feature Service (WFS), Web Map Service (WMS), and Web Coverage Service (WCS). GeoServer comes with the JAI-EXT API. This API is enabled by default and provides a set of high-level objects for image processing.

The JAI-EXT project contains a map algebra language called Jiffle. Jiffle is a simple scripting language to work with raster images. Its main aim is to let you get more done with less code.


What is CVE-2022-24816?

JAI-EXT is an open-source project which aims to extend the Java Advanced Imaging (JAI) API. Programs allowing Jiffle script to be provided via network request can lead to a Remote Code Execution as the Jiffle script is compiled into Java code via Janino, and executed. In particular, this affects the downstream GeoServer project. Version 1.2.22 will contain a patch that disables the ability to inject malicious code into the resulting script. Users unable to upgrade may negate the ability to compile Jiffle scripts from the final application, by removing janino-x.y.z.jar from the classpath.


Lab Environment

In this lab environment, the user is going to get access to a Kali GUI instance. A GeoServer instance vulnerable to a deserialization vulnerability leading to code execution, identified by CVE-2022-24816, is running on the target server. It can be accessed using the tools installed on Kali at http://demo.ine.local:8080/geoserver.

Objective: Leverage the vulnerable GeoServer (with JT-Jiffle extension) instance to exploit the deserialization vulnerability and retrieve the flag from the server located in the file /tmp/FLAG.txt.


  • This lab is dedicated to you! No other users are on this network :) 

  • Once you start the lab, you will have access to a root terminal of a Kali instance

  • Your Kali has an interface with IP address 192.X.Y.2. Run "ip addr" to know the values of X and Y.

  • The target GeoServer application should be accessible on http://demo.ine.local:8080/geoserver

  • Do not attack the gateway located at IP address 192.X.Y.1

1. Flag present on the target server in /tmp/FLAG.txt

The following activities are strictly prohibited on this website unless otherwise explicitly stated as allowed in the mission statement:

  • Using automated scanners
  • Using brute force attacks
  • Denial of Service attacks
  • Attacking other student machines in challenges where you might achieve a shell on the vulnerable system
  • Attacking the lab infrastructure

Users violating the above will be either temporarily or permanently banned from the website. 

If you are unsure about an activity, then please contact support to confirm that it is allowed on our website.

Technical Support for this Lab:

There is a reason we provide unlimited lab time: you can take as much time as you need to solve a lab. However, we realize that sometimes hints might be necessary to keep you motivated!

We currently provide technical support limited to:

  • Giving hints for a lab exercise
  • In rare circumstances, if you have totally given up (NO!!!) then tell you how to solve it. This will be limited to sharing the solution video or lab report
  • A lab exercise fails to load or has errors in it

If you need technical support, please email  clearly mention the name and link of the lab exercise and other essential details. The more descriptive you are, the faster we can help you. We will get back to you within 24 hours or less. 

For adminitrative queries, billing, enterprise accounts etc. please email