CVE-2023-41081
High · 7.5CVSS
7.5
EPSS
1.6%
Published
Sep 13, 2023
CISA due date
—
Cloudanix analysis
A misconfiguration in the way web requests are routed could let outsiders reach internal status pages or bypass access rules on certain Apache web-server setups.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Library
- Class
- Authentication Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
mod_jk performs implicit request mapping to the first defined worker when JkOptions +ForwardDirectories is enabled without explicit mounts for all proxied paths, exposing the status worker or bypassing httpd security constraints.
Why it matters to the business
Attackers may obtain internal status information or reach resources that should be protected, increasing the chance of further compromise or data exposure in Apache HTTPD setups using mod_jk.
How an attack unfolds
An attacker sends HTTP requests to paths not covered by explicit worker mounts; mod_jk implicitly routes them to the first worker (commonly the status worker), bypassing configured access controls and revealing sensitive connector status or other proxied content.
How to fix it
Upgrade apache/tomcat-connectors to the version containing commit 3ad622409ae3335df9f353bef8ebc4d72a70fd6d (equivalent to 1.2.49). Replace all implicit mappings with explicit JkMount or JkUnMount directives and remove reliance on ForwardDirectories for security decisions.
How to confirm the fix worked
Confirm the installed mod_jk version is 1.2.49 or newer; audit httpd configuration for the absence of JkOptions +ForwardDirectories without corresponding explicit mounts for every possible path; test that requests to unmapped paths now return 404 or are explicitly denied rather than routed to the first worker.
Typical attack path
- Identify a Tomcat Connectors deployment using mod_jk with JkOptions +ForwardDirectories enabled
- Send requests to unmapped paths that trigger implicit routing
- Reach the status worker or other unintended backend resources
- Extract connector status details or access protected content
How to detect it
Search web-server access logs for requests that resolve to the status worker without an explicit mount entry; review mod_jk configuration files for the presence of JkOptions +ForwardDirectories combined with missing explicit JkMount directives; monitor for unexpected access to /jkstatus or similar status endpoints.
- JkOptions +ForwardDirectories
- jkstatus
- mod_jk implicit mapping
What your security team should do
- Upgrade mod_jk to 1.2.49 or the fixed commit immediately
- Replace any JkOptions +ForwardDirectories usage with explicit mount rules
- Review all worker definitions and ensure no status worker is reachable via implicit paths
- Add configuration review to change-management processes for future mod_jk deployments
The record
Important: Authentication Bypass CVE-2023-41081 The mod_jk component of Apache Tomcat Connectors in some circumstances, such as when a configuration included "JkOptions +ForwardDirectories" but the configuration did not provide explicit mounts for all possible proxied requests, mod_jk would use an implicit mapping and map the request to the first defined worker. Such an implicit mapping could result in the unintended exposure of the status worker and/or bypass security constraints configured in httpd. As of JK 1.2.49, the implicit mapping functionality has been removed and all mappings must now be via explicit configuration. Only mod_jk is affected by this issue. The ISAPI redirector is not affected. This issue affects Apache Tomcat Connectors (mod_jk only): from 1.2.0 through 1.2.48. Users are recommended to upgrade to version 1.2.49, which fixes the issue. History 2023-09-13 Original advisory 2023-09-28 Updated summary
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:9 | mod_jk | 0 | 1.2.49-1.el9_4 |
| AlmaLinux:9 | mod_proxy_cluster | 0 | 1.3.20-1.el9_4 |
| Debian:10 | libapache-mod-jk | 0 | 1:1.2.46-1+deb10u2 |
| Debian:11 | libapache-mod-jk | 0 | 1:1.2.48-1+deb11u1 |
| Debian:12 | libapache-mod-jk | 0 | 1:1.2.48-2+deb12u1 |
| Debian:13 | libapache-mod-jk | 0 | 1:1.2.49-1 |
| Debian:14 | libapache-mod-jk | 0 | 1:1.2.49-1 |
| Mageia:9 | apache-mod_jk | 0 | 1.2.49-1.mga9 |
| Red Hat:enterprise_linux:9::appstream | mod_jk | 0 | 0:1.2.49-1.el9_4 |
| Red Hat:enterprise_linux:9::appstream | mod_jk-debuginfo | 0 | 0:1.2.49-1.el9_4 |
| Red Hat:enterprise_linux:9::appstream | mod_jk-debugsource | 0 | 0:1.2.49-1.el9_4 |
| Red Hat:enterprise_linux:9::appstream | mod_proxy_cluster | 0 | 0:1.3.20-1.el9_4 |
| Red Hat:enterprise_linux:9::appstream | mod_proxy_cluster-debuginfo | 0 | 0:1.3.20-1.el9_4 |
| Red Hat:enterprise_linux:9::appstream | mod_proxy_cluster-debugsource | 0 | 0:1.3.20-1.el9_4 |
| Red Hat:jboss_core_services:1::el7 | jbcs-httpd24-curl | 0 | 0:8.4.0-2.el7jbcs |
| Red Hat:jboss_core_services:1::el7 | jbcs-httpd24-curl-debuginfo | 0 | 0:8.4.0-2.el7jbcs |
| Red Hat:jboss_core_services:1::el7 | jbcs-httpd24-libcurl | 0 | 0:8.4.0-2.el7jbcs |
| Red Hat:jboss_core_services:1::el7 | jbcs-httpd24-libcurl-devel | 0 | 0:8.4.0-2.el7jbcs |
| Red Hat:jboss_core_services:1::el7 | jbcs-httpd24-mod_http2 | 0 | 0:1.15.19-32.el7jbcs |
| Red Hat:jboss_core_services:1::el7 | jbcs-httpd24-mod_http2-debuginfo | 0 | 0:1.15.19-32.el7jbcs |
| Red Hat:jboss_core_services:1::el7 | jbcs-httpd24-mod_jk | 0 | 0:1.2.49-1.redhat_1.el7jbcs |
| Red Hat:jboss_core_services:1::el7 | jbcs-httpd24-mod_jk-ap24 | 0 | 0:1.2.49-1.redhat_1.el7jbcs |
| Red Hat:jboss_core_services:1::el7 | jbcs-httpd24-mod_jk-debuginfo | 0 | 0:1.2.49-1.redhat_1.el7jbcs |
| Red Hat:jboss_core_services:1::el7 | jbcs-httpd24-openssl | 0 | 1:1.1.1k-16.el7jbcs |
| Red Hat:jboss_core_services:1::el7 | jbcs-httpd24-openssl-debuginfo | 0 | 1:1.1.1k-16.el7jbcs |
| Red Hat:jboss_core_services:1::el7 | jbcs-httpd24-openssl-devel | 0 | 1:1.1.1k-16.el7jbcs |
| Red Hat:jboss_core_services:1::el7 | jbcs-httpd24-openssl-libs | 0 | 1:1.1.1k-16.el7jbcs |
| Red Hat:jboss_core_services:1::el7 | jbcs-httpd24-openssl-perl | 0 | 1:1.1.1k-16.el7jbcs |
| Red Hat:jboss_core_services:1::el7 | jbcs-httpd24-openssl-static | 0 | 1:1.1.1k-16.el7jbcs |
| Red Hat:jboss_core_services:1::el8 | jbcs-httpd24-curl | 0 | 0:8.4.0-2.el8jbcs |
| Red Hat:jboss_core_services:1::el8 | jbcs-httpd24-curl-debuginfo | 0 | 0:8.4.0-2.el8jbcs |
| Red Hat:jboss_core_services:1::el8 | jbcs-httpd24-libcurl | 0 | 0:8.4.0-2.el8jbcs |
| Red Hat:jboss_core_services:1::el8 | jbcs-httpd24-libcurl-debuginfo | 0 | 0:8.4.0-2.el8jbcs |
| Red Hat:jboss_core_services:1::el8 | jbcs-httpd24-libcurl-devel | 0 | 0:8.4.0-2.el8jbcs |
| Red Hat:jboss_core_services:1::el8 | jbcs-httpd24-mod_http2 | 0 | 0:1.15.19-32.el8jbcs |
| Red Hat:jboss_core_services:1::el8 | jbcs-httpd24-mod_http2-debuginfo | 0 | 0:1.15.19-32.el8jbcs |
| Red Hat:jboss_core_services:1::el8 | jbcs-httpd24-mod_jk | 0 | 0:1.2.49-1.redhat_1.el8jbcs |
| Red Hat:jboss_core_services:1::el8 | jbcs-httpd24-mod_jk-ap24 | 0 | 0:1.2.49-1.redhat_1.el8jbcs |
| Red Hat:jboss_core_services:1::el8 | jbcs-httpd24-mod_jk-ap24-debuginfo | 0 | 0:1.2.49-1.redhat_1.el8jbcs |
| Red Hat:jboss_core_services:1::el8 | jbcs-httpd24-openssl | 0 | 1:1.1.1k-16.el8jbcs |
| Red Hat:jboss_core_services:1::el8 | jbcs-httpd24-openssl-debuginfo | 0 | 1:1.1.1k-16.el8jbcs |
| Red Hat:jboss_core_services:1::el8 | jbcs-httpd24-openssl-devel | 0 | 1:1.1.1k-16.el8jbcs |
| Red Hat:jboss_core_services:1::el8 | jbcs-httpd24-openssl-libs | 0 | 1:1.1.1k-16.el8jbcs |
| Red Hat:jboss_core_services:1::el8 | jbcs-httpd24-openssl-libs-debuginfo | 0 | 1:1.1.1k-16.el8jbcs |
| Red Hat:jboss_core_services:1::el8 | jbcs-httpd24-openssl-perl | 0 | 1:1.1.1k-16.el8jbcs |
| Red Hat:jboss_core_services:1::el8 | jbcs-httpd24-openssl-static | 0 | 1:1.1.1k-16.el8jbcs |
| SUSE:Linux Enterprise Module for Server Applications 15 SP6 | apache2-mod_jk | 0 | 1.2.50-150100.6.12.1 |
| SUSE:Linux Enterprise Server 12 SP5 | apache2-mod_jk | 0 | 1.2.49-7.9.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | apache2-mod_jk | 0 | 1.2.49-7.9.1 |
| Ubuntu:20.04:LTS | libapache-mod-jk | 0 | 1:1.2.46-1ubuntu0.1 |
| Ubuntu:22.04:LTS | libapache-mod-jk | 0 | 1:1.2.48-1ubuntu0.1 |
| Ubuntu:23.10 | libapache-mod-jk | 0 | 1:1.2.48-2ubuntu0.1 |
| Ubuntu:24.04:LTS | libapache-mod-jk | 0 | 1:1.2.49-1 |
| Ubuntu:Pro:16.04:LTS | libapache-mod-jk | 0 | 1:1.2.41-1ubuntu0.1~esm1 |
| Ubuntu:Pro:18.04:LTS | libapache-mod-jk | 0 | 1:1.2.43-1ubuntu0.1~esm1 |
| openSUSE:Leap 15.6 | apache2-mod_jk | 0 | 1.2.50-150100.6.12.1 |
Related vulnerabilities
- CVE-2024-46544 Incorrect Default Permissions vulnerability in Apache Tomcat Connectors allows local… Also affects mod_jk
- CVE-2007-0774 Stack-based buffer overflow in the map_uri_to_worker function… Also affects libapache-mod-jk
- CVE-2018-11759 The Apache Web Server (httpd) specific code that normalised the requested path before… Also affects libapache-mod-jk
- CVE-2007-1860 mod_jk in Apache Tomcat JK Web Server Connector 1.2.x before 1.2.23 decodes request URLs… Also affects libapache-mod-jk
- CVE-2023-46219 When saving HSTS data to an excessively long file name, curl could end up removing all… Also affects jbcs-httpd24-curl
- CVE-2023-46218 This flaw allows a malicious HTTP server to set "super cookies" in curl that are then… Also affects jbcs-httpd24-curl
- CVE-2023-5678 Issue summary: Generating excessively long X9.42 DH keys or checking excessively long… Also affects jbcs-httpd24-curl
- CVE-2023-38545 This flaw makes curl overflow a heap based buffer in the SOCKS5 proxy handshake. Also affects jbcs-httpd24-curl