CVE-2023-37895

CVE-2023-37895 is a critical-severity insecure deserialization vulnerability in org.apache.jackrabbit:jackrabbit-webapp (maven), affecting versions >= 2.21.0, < 2.21.18. It is fixed in 2.21.18, 2.20.11.

Does this CVE actually affect you?

Kodem shows which CVEs are reachable and running in your applications, so you fix what's exploitable, not just what's listed.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Runtime intelligence, not another scanner.

Summary

Remote code execution in Apache Jackrabbit

Java object deserialization issue in Jackrabbit webapp/standalone on all platforms allows attacker to remotely execute code via RMIVersions up to (including) 2.20.10 (stable branch) and 2.21.17 (unstable branch) use the component "commons-beanutils", which contains a class that can be used for remote code execution over RMI.

Users are advised to immediately update to versions 2.20.11 or 2.21.18. Note that earlier stable branches (1.0.x .. 2.18.x) have been EOLd already and do not receive updates anymore.

In general, RMI support can expose vulnerabilities by the mere presence of an exploitable class on the classpath. Even if Jackrabbit itself does not contain any code known to be exploitable anymore, adding other components to your server can expose the same type of problem. We therefore recommend to disable RMI access altogether (see further below), and will discuss deprecating RMI support in future Jackrabbit releases.

How to check whether RMI support is enabledRMI support can be over an RMI-specific TCP port, and over an HTTP binding. Both are by default enabled in Jackrabbit webapp/standalone.

The native RMI protocol by default uses port 1099. To check whether it is enabled, tools like "netstat" can be used to check.

RMI-over-HTTP in Jackrabbit by default uses the path "/rmi". So when running standalone on port 8080, check whether an HTTP GET request on localhost:8080/rmi returns 404 (not enabled) or 200 (enabled). Note that the HTTP path may be different when the webapp is deployed in a container as non-root context, in which case the prefix is under the user's control.

Turning off RMIFind web.xml (either in JAR/WAR file or in unpacked web application folder), and remove the declaration and the mapping definition for the RemoteBindingServlet:

       
            RMI
            org.apache.jackrabbit.servlet.remote.RemoteBindingServlet
       

       
            RMI
            /rmi
       

Find the bootstrap.properties file (in $REPOSITORY_HOME), and set

        rmi.enabled=false

    and also remove

        rmi.host
        rmi.port
        rmi.url-pattern

 If there is no file named bootstrap.properties in $REPOSITORY_HOME, it is located somewhere in the classpath. In this case, place a copy in $REPOSITORY_HOME and modify it as explained.

Impact

Untrusted serialized data is processed by a deserializer that can instantiate arbitrary objects or execute code as a side effect. Typical impact: arbitrary code execution or logic abuse.

CVE-2023-37895 has a CVSS score of 9.8 (Critical). The vector is network-reachable, no privileges required, and no user interaction. A CVSS score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether this affects your application depends on whether the vulnerable code is present and reachable in your environment. A fixed version is available (2.21.18, 2.20.11); upgrading removes the vulnerable code path.

Affected versions

org.apache.jackrabbit:jackrabbit-webapp (>= 2.21.0, < 2.21.18) org.apache.jackrabbit:jackrabbit-webapp (>= 1.0.0, < 2.20.11) org.apache.jackrabbit:jackrabbit-standalone (>= 2.21.0, < 2.21.18) org.apache.jackrabbit:jackrabbit-standalone (>= 1.0.0, < 2.20.11) org.apache.jackrabbit:jackrabbit-standalone-components (>= 2.21.0, < 2.21.18) org.apache.jackrabbit:jackrabbit-standalone-components (>= 1.0.0, < 2.20.11)

Security releases

org.apache.jackrabbit:jackrabbit-webapp → 2.21.18 (maven) org.apache.jackrabbit:jackrabbit-webapp → 2.20.11 (maven) org.apache.jackrabbit:jackrabbit-standalone → 2.21.18 (maven) org.apache.jackrabbit:jackrabbit-standalone → 2.20.11 (maven) org.apache.jackrabbit:jackrabbit-standalone-components → 2.21.18 (maven) org.apache.jackrabbit:jackrabbit-standalone-components → 2.20.11 (maven)

Kodem intelligence

Severity tells you how bad this could be in the worst case. It does not tell you whether you are exposed. Exploitability and impact are functions of runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A vulnerable package can sit in your dependency tree and never run.

Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter. Kodem's runtime-powered SCA identifies whether this CVE is reachable in your applications.

Already deployed Kodem?

See it in your environmentNew to Kodem? Get a demo →

Remediation advice

Upgrade the following packages to resolve this vulnerability:

org.apache.jackrabbit:jackrabbit-webapp to 2.21.18 or later; org.apache.jackrabbit:jackrabbit-webapp to 2.20.11 or later; org.apache.jackrabbit:jackrabbit-standalone to 2.21.18 or later; org.apache.jackrabbit:jackrabbit-standalone to 2.20.11 or later; org.apache.jackrabbit:jackrabbit-standalone-components to 2.21.18 or later; org.apache.jackrabbit:jackrabbit-standalone-components to 2.20.11 or later

Kodem Kai can prioritize this vulnerability in your dependency tree and generate a fix recommendation.

Frequently Asked Questions

  1. What is CVE-2023-37895? CVE-2023-37895 is a critical-severity insecure deserialization vulnerability in org.apache.jackrabbit:jackrabbit-webapp (maven), affecting versions >= 2.21.0, < 2.21.18. It is fixed in 2.21.18, 2.20.11. Untrusted serialized data is processed by a deserializer that can instantiate arbitrary objects or execute code as a side effect.
  2. How severe is CVE-2023-37895? CVE-2023-37895 has a CVSS score of 9.8 (Critical). This score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether it represents real risk in your environment depends on whether the vulnerable code is present and reachable.
  3. Which packages are affected by CVE-2023-37895?
    • org.apache.jackrabbit:jackrabbit-webapp (maven) (versions >= 2.21.0, < 2.21.18)
    • org.apache.jackrabbit:jackrabbit-standalone (maven) (versions >= 2.21.0, < 2.21.18)
    • org.apache.jackrabbit:jackrabbit-standalone-components (maven) (versions >= 2.21.0, < 2.21.18)
  4. Is there a fix for CVE-2023-37895? Yes. CVE-2023-37895 is fixed in 2.21.18, 2.20.11. Upgrade to this version or later.
  5. Is CVE-2023-37895 exploitable, and should I be worried? Whether CVE-2023-37895 is exploitable in your environment depends on whether the vulnerable code is present and reachable. A CVSS score is a worst-case rating; it does not account for your specific deployment, configuration, or usage patterns. Kodem, an Intelligent Application Security platform, uses runtime intelligence to show which vulnerabilities actually execute in production, so you can focus on the ones that represent real risk. Get a demo
  6. What actually determines whether CVE-2023-37895 is exploitable, and how bad it is? Exploitability and impact are not fixed properties of a CVE. They depend on runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A high CVSS score on a dependency that never runs is not the same as real risk. Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter.
  7. How do I fix CVE-2023-37895?
    • Upgrade org.apache.jackrabbit:jackrabbit-webapp to 2.21.18 or later
    • Upgrade org.apache.jackrabbit:jackrabbit-webapp to 2.20.11 or later
    • Upgrade org.apache.jackrabbit:jackrabbit-standalone to 2.21.18 or later
    • Upgrade org.apache.jackrabbit:jackrabbit-standalone to 2.20.11 or later
    • Upgrade org.apache.jackrabbit:jackrabbit-standalone-components to 2.21.18 or later
    • Upgrade org.apache.jackrabbit:jackrabbit-standalone-components to 2.20.11 or later

Stop the waste.
Protect your environment with Kodem.