CVE DatabaseCVE-2022-24816
한국어 권고문 →
CVE-2022-2481610.0/CRITICALCISA KEVCWE-94CWE-94

GeoServer & JAI-EXT Jiffle Script Compiler Remote Code Execution (RCE) Vulnerability (CVE-2022-24816) Analysis and Mitigation Guide

⚡ Jump to Patch
Affected Vendors
geosolutions-it, geoserver
Affected Components
jai-ext, geoserver
Published Date
2022-04-13
CVSS v3.1
10.0
CRITICAL
EPSS (30d)
99.9%
FIRST.org
CISA KEV
Exploited

Executive & SecOps Summary

SECOPS ASSESSMENT
Affected Scope

Java applications utilizing JAI-EXT library versions prior to 1.2.22, including downstream GeoServer deployments.

Impact

Unauthenticated remote attackers can execute arbitrary Java code on the target server by injecting malicious Jiffle scripts, leading to complete system compromise.

Mitigation

Immediately upgrade JAI-EXT to version 1.2.22 or higher, or temporarily remove the Janino compiler JAR file from the classpath.

Affected Products & Version Scope

JAI-EXT versions prior to 1.2.22 and downstream GeoServer deployments

Remediation & Live Workaround Commands

PATCH & WORKAROUND

1. Official Patch & Version Upgrade Commands

Upgrade the JAI-EXT dependency to version 1.2.22 or higher. Update your Maven pom.xml or Gradle build configuration to enforce the patched version as shown below:

xml
<!-- Maven pom.xml Dependency Override -->
<dependency>
    <groupId>it.geosolutions.jaiext.jiffle</groupId>
    <artifactId>jt-jiffle-op</artifactId>
    <version>1.2.22</version>
</dependency>

2. Temporary Workaround & Hardening Configuration

If upgrading immediately is not feasible, disable Jiffle script compilation by removing the Janino compiler and its dependencies from the application classpath.

bash
# Locate and remove Janino compiler JARs from the GeoServer classpath
find /usr/share/geoserver/ -name 'janino-*.jar' -exec rm -f {} \;
find /usr/share/geoserver/ -name 'commons-compiler-*.jar' -exec rm -f {} \;

# Restart the GeoServer service to apply changes
systemctl restart geoserver

3. Log Audit & IoC Verification Commands

Use the following commands to scan for vulnerable library files and inspect web server logs for potential exploitation attempts.

bash
# 1. Scan the filesystem for vulnerable Janino compiler libraries
echo '[*] Scanning for Janino JAR files...'
find / -name 'janino-*.jar' 2>/dev/null

# 2. Search web server and application logs for Jiffle-related exploit patterns
echo '[*] Searching logs for Jiffle RCE indicators...'
grep -riE 'jiffle|janino|Runtime\.getRuntime' /var/log/geoserver/ /var/log/nginx/ /var/log/apache2/ 2>/dev/null
Interactive SecOps Remediation Checklist
0/4 (0%)
Recommended Security Control & Mitigation Partner
Cloudflare Enterprise & Pro WAF
Due to active exploitation in the wild (CISA KEV), immediately upgrade JAI-EXT to 1.2.22+ or remove the Janino compiler JAR files from your production environments.

Block Exploits Instantly with Managed Virtual Patching Rules

Can't patch production immediately? Deploy managed WAF rules at the edge to intercept RCE, SQLi, and deserialization payloads before they hit your origin server.

3-min setup · Automated Zero-Day Managed Rules
Practice Exploiting & Patching This Web Vulnerability in an Interactive Lab
Launch Hands-On Security Lab

Technical Root Cause & Exploitation Mechanics

1. Vulnerability Overview & Root Cause

This vulnerability (CVE-2022-24816) is a critical Remote Code Execution (RCE) flaw in the open-source JAI-EXT library, which extends the Java Advanced Imaging (JAI) API. JAI-EXT supports 'Jiffle', a scripting language designed for image processing and map algebra. To optimize execution speed, Jiffle scripts are dynamically compiled into Java bytecode at runtime using the Janino compiler. Due to a lack of input validation and proper sandboxing, malicious Java code embedded within a Jiffle script can bypass restrictions and execute directly within the JVM context (CWE-94).

2. Exploitation Mechanics & Attack Scenario

An attacker initiates the exploit by sending a crafted network request (such as a WMS or WCS request containing rendering transformations in GeoServer) that includes a malicious Jiffle script. The JAI-EXT engine processes this request and concatenates the untrusted input into a Java source code template. The Janino compiler then compiles this source code in-memory and executes it. By embedding standard Java payloads (e.g., 'Runtime.getRuntime().exec()') within the Jiffle script, the attacker bypasses network perimeters to execute OS commands, establish reverse shells, or deploy secondary malware.

3. Infrastructure & Business Impact

With a CVSS score of 10.0, this vulnerability represents the highest level of severity. It is listed in CISA's Known Exploited Vulnerabilities (KEV) catalog, indicating active exploitation in the wild. Because GeoServer—a widely used geospatial data server—relies on JAI-EXT by default, the impact is extensive. Successful exploitation allows attackers to exfiltrate sensitive geospatial databases, pivot laterally within cloud environments, and disrupt critical infrastructure operations.

Official Vendor Advisories & References

NVD Original English Description

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.

Frequently Asked SecOps Questions (CVE-2022-24816)

FAQ

Q1. How critical is CVE-2022-24816 and is it actively exploited in the wild?

CVE-2022-24816 is rated CVSS 10.0 (CRITICAL) with a 30-day EPSS exploitation probability of 99.9%. It is listed in the CISA Known Exploited Vulnerabilities (KEV) catalog, requiring immediate emergency remediation.

Q2. Which vendors and products are affected by CVE-2022-24816?

Primary impacted vendors include geosolutions-it, geoserver across jai-ext, geoserver. Scope summary: JAI-EXT versions prior to 1.2.22 and downstream GeoServer deployments

Q3. What temporary mitigations or workarounds exist for CVE-2022-24816 before patching?

[Mitigation] Immediately upgrade JAI-EXT to version 1.2.22 or higher, or temporarily remove the Janino compiler JAR file from the classpath. Follow the CLI remediation commands and interactive SecOps checklist on this page to restrict exposure prior to your maintenance window.

SECOPS WORKBENCH INTEGRATION

Generate an Internal Engineering Notice or CISO Report for CVE-2022-24816

Instantly format this advisory into an executive CISO summary or engineering patch ticket.

Generate Report →

🔗 Related Advisories in Similar Stack (geosolutions-it)

View Category →
SecOps Advisory Dispatch & RSS Feed

Subscribe to Daily Vulnerability Briefings & KEV Alerts

Concise morning briefings for SecOps, DevSecOps, and SRE teams covering newly exploited CVEs and mitigation priorities.

Slack / Teams / RSS Feed:
PatchKO
CVE-2022-24816 GeoServer & JAI-EXT Jiffle Script Compiler Remote Code Execution (RCE) Vulnerability (CVE-2022-24816) Analysis and Mitigation Guide (CVSS 10.0) - Patch & Workaround | CVE Pulse