CVE-2024-36522 Overview
A critical remote code execution vulnerability exists in Apache Wicket's XSLTResourceStream.java component. The default configuration is vulnerable to XSLT injection when processing input from an untrusted source without proper validation. This injection vulnerability allows attackers to execute arbitrary code on affected systems by crafting malicious XSLT payloads that are processed by the vulnerable component.
Critical Impact
This vulnerability allows unauthenticated remote attackers to execute arbitrary code on systems running vulnerable versions of Apache Wicket, potentially leading to complete system compromise.
Affected Products
- Apache Wicket versions prior to 10.1.0
- Apache Wicket versions prior to 9.18.0
- Apache Wicket versions prior to 8.16.0
Discovery Timeline
- 2024-07-12 - CVE-2024-36522 published to NVD
- 2025-07-10 - Last updated in NVD database
Technical Details for CVE-2024-36522
Vulnerability Analysis
This vulnerability is classified as an Injection vulnerability (CWE-74) affecting the XSLT processing functionality in Apache Wicket. The XSLTResourceStream.java component processes XSLT transformations without adequate input validation, creating an opportunity for attackers to inject malicious XSLT code. When untrusted input is passed to this component, attackers can leverage XSLT features to execute arbitrary Java code on the server.
XSLT (Extensible Stylesheet Language Transformations) is a powerful language that can invoke Java methods and access system resources when processed by vulnerable parsers. The default configuration of Apache Wicket does not restrict these dangerous capabilities, allowing attackers to exploit the transformation process for code execution.
Root Cause
The root cause of this vulnerability lies in the insecure default configuration of XSLTResourceStream.java. The component fails to implement proper security controls when processing XSLT stylesheets, specifically lacking restrictions on dangerous XSLT extensions and Java method invocations. This allows attackers to craft malicious stylesheets that execute arbitrary code during the transformation process.
Attack Vector
The attack vector is network-based, requiring no authentication or user interaction. An attacker can exploit this vulnerability by submitting a crafted XSLT payload to any application endpoint that processes user-supplied XSLT content through the vulnerable XSLTResourceStream component.
The vulnerability manifests when malicious XSLT code containing Java extension functions or external entity references is processed by the unprotected transformer. Attackers can leverage XSLT's ability to invoke Java methods through extension functions to execute system commands or load malicious classes. For detailed technical analysis, refer to the Apache Mailing List Thread and the OpenWall OSS Security Discussion.
Detection Methods for CVE-2024-36522
Indicators of Compromise
- Unusual XSLT processing requests containing Java extension function calls or suspicious namespace declarations
- Web application logs showing XSLT transformation errors with references to unauthorized Java classes
- Unexpected outbound network connections from web application servers
- Evidence of command execution or file system access from the web application process
Detection Strategies
- Monitor application logs for XSLT-related exceptions or errors indicating injection attempts
- Implement web application firewall rules to detect malicious XSLT patterns in request payloads
- Deploy runtime application self-protection (RASP) solutions to detect and block XSLT injection attempts
- Use SentinelOne's behavioral analysis to identify anomalous process spawning from Java web applications
Monitoring Recommendations
- Enable detailed logging for XSLT transformation operations in Apache Wicket applications
- Monitor for suspicious Java class loading or reflection-based method invocations
- Track network connections initiated by web application processes for potential command-and-control communication
- Implement file integrity monitoring on systems running vulnerable Apache Wicket deployments
How to Mitigate CVE-2024-36522
Immediate Actions Required
- Upgrade Apache Wicket to version 10.1.0, 9.18.0, or 8.16.0 immediately
- Review application code for any usage of XSLTResourceStream with untrusted input
- Implement input validation on all XSLT content before processing
- Apply network segmentation to limit the impact of potential compromise
Patch Information
Apache has released security patches addressing this vulnerability in the following versions:
- Apache Wicket 10.1.0 - For users on the 10.x branch
- Apache Wicket 9.18.0 - For users on the 9.x branch
- Apache Wicket 8.16.0 - For users on the 8.x branch
Organizations should prioritize upgrading to these patched versions. Refer to the official Apache Mailing List Thread for detailed upgrade instructions and release notes.
Workarounds
- Disable or remove any application functionality that processes user-supplied XSLT content until patches can be applied
- Implement a secure XSLT transformer factory with restricted features as an interim measure
- Deploy web application firewall rules to block requests containing potentially malicious XSLT patterns
- Restrict network access from application servers to limit post-exploitation lateral movement
# Example: Check current Apache Wicket version in Maven projects
grep -r "wicket" pom.xml | grep version
# Verify upgrade by checking for patched versions: 10.1.0, 9.18.0, or 8.16.0
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

