CVE-2024-7885
High · 7.5CVSS
7.5
EPSS
2.6%
Published
Aug 21, 2024
CISA due date
—
Cloudanix analysis
A web server component can accidentally mix data from one user's request into another user's response, which may leak information or break connections.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Information Disclosure
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
ProxyProtocolReadListener reuses a single StringBuilder instance in parseProxyProtocolV1 across multiple requests on the same HTTP connection, allowing data from one request or response to be erroneously included in another or triggering connection termination.
Why it matters to the business
May expose portions of previous request or response data to other clients on persistent connections, creating privacy or compliance risks, while also causing connection drops that disrupt service availability.
How an attack unfolds
An attacker establishes a persistent HTTP connection and sends multiple proxy-protocol-v1 requests in sequence; because the StringBuilder is shared, data remnants from an earlier request may appear in a later response or cause the server to terminate the connection.
How to fix it
Upgrade Undertow to version 2.3.18-1 or newer on Debian 13; apply the corresponding fixed linux_kernel build dated 2021-08-05 or later on affected Android devices.
How to confirm the fix worked
Confirm the installed Undertow package version is at least 2.3.18-1; perform repeated proxy-protocol requests on a single connection and verify that StringBuilder contents are not reused across requests.
Typical attack path
- Establish a persistent HTTP connection to an Undertow-based server using proxy protocol
- Issue multiple rapid requests over the same connection
- Inspect subsequent responses or error behavior for leakage of prior request data
How to detect it
Review server logs for repeated proxy-protocol parsing errors or abrupt connection closures; correlate response bodies across sessions on the same connection for unexpected data reuse.
What your security team should do
- Apply the listed fixed versions immediately due to the 781-day publication window and stable EPSS
- Disable proxy protocol on public interfaces until patched
- Monitor connection termination rates and response anomalies in proxy-protocol traffic
The record
A vulnerability was found in Undertow where the ProxyProtocolReadListener reuses the same StringBuilder instance across multiple requests. This issue occurs when the parseProxyProtocolV1 method processes multiple requests on the same HTTP connection. As a result, different requests may share the same StringBuilder instance, potentially leading to information leakage between requests or responses. In some cases, a value from a previous request or response may be erroneously reused, which could lead to unintended data exposure. This issue primarily results in errors and connection termination but creates a risk of data leakage in multi-request environments.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | io.undertow:undertow-core | 0 | No fix |
| Maven | io.undertow:undertow-core | 0 | 2.2.36.Final |
| Maven | io.undertow:undertow-core | 2.3.0.Alpha1 | 2.3.17.Final |
| Debian:13 | undertow | 0 | 2.3.18-1 |
| Red Hat:jboss_enterprise_application_platform:7.4::el7 | eap7-undertow | 0 | 0:2.2.33-2.SP2_redhat_00001.1.el7eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el7 | eap7-wildfly | 0 | 0:7.4.18-1.GA_redhat_00003.1.el7eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el7 | eap7-wildfly-java-jdk11 | 0 | 0:7.4.18-1.GA_redhat_00003.1.el7eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el7 | eap7-wildfly-java-jdk8 | 0 | 0:7.4.18-1.GA_redhat_00003.1.el7eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el7 | eap7-wildfly-javadocs | 0 | 0:7.4.18-1.GA_redhat_00003.1.el7eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el7 | eap7-wildfly-modules | 0 | 0:7.4.18-1.GA_redhat_00003.1.el7eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el8 | eap7-undertow | 0 | 0:2.2.33-2.SP2_redhat_00001.1.el8eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el8 | eap7-wildfly | 0 | 0:7.4.18-1.GA_redhat_00003.1.el8eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el8 | eap7-wildfly-java-jdk11 | 0 | 0:7.4.18-1.GA_redhat_00003.1.el8eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el8 | eap7-wildfly-java-jdk17 | 0 | 0:7.4.18-1.GA_redhat_00003.1.el8eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el8 | eap7-wildfly-java-jdk8 | 0 | 0:7.4.18-1.GA_redhat_00003.1.el8eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el8 | eap7-wildfly-javadocs | 0 | 0:7.4.18-1.GA_redhat_00003.1.el8eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el8 | eap7-wildfly-modules | 0 | 0:7.4.18-1.GA_redhat_00003.1.el8eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el9 | eap7-undertow | 0 | 0:2.2.33-2.SP2_redhat_00001.1.el9eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el9 | eap7-wildfly | 0 | 0:7.4.18-1.GA_redhat_00003.1.el9eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el9 | eap7-wildfly-java-jdk11 | 0 | 0:7.4.18-1.GA_redhat_00003.1.el9eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el9 | eap7-wildfly-java-jdk17 | 0 | 0:7.4.18-1.GA_redhat_00003.1.el9eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el9 | eap7-wildfly-java-jdk8 | 0 | 0:7.4.18-1.GA_redhat_00003.1.el9eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el9 | eap7-wildfly-javadocs | 0 | 0:7.4.18-1.GA_redhat_00003.1.el9eap |
| Red Hat:jboss_enterprise_application_platform:7.4::el9 | eap7-wildfly-modules | 0 | 0:7.4.18-1.GA_redhat_00003.1.el9eap |
| Red Hat:jboss_enterprise_application_platform:8.0::el8 | eap8-amazon-ion-java | 0 | 0:1.11.9-2.redhat_00001.1.el8eap |
| Red Hat:jboss_enterprise_application_platform:8.0::el8 | eap8-eap-product-conf-parent | 0 | 0:800.3.1-2.GA_redhat_00002.1.el8eap |
| Red Hat:jboss_enterprise_application_platform:8.0::el8 | eap8-eap-product-conf-wildfly-ee-feature-pack | 0 | 0:800.3.1-2.GA_redhat_00002.1.el8eap |
| Red Hat:jboss_enterprise_application_platform:8.0::el8 | eap8-undertow | 0 | 0:2.3.14-2.SP2_redhat_00001.1.el8eap |
| Red Hat:jboss_enterprise_application_platform:8.0::el8 | eap8-wildfly | 0 | 0:8.0.3-13.GA_redhat_00007.1.el8eap |
| Red Hat:jboss_enterprise_application_platform:8.0::el8 | eap8-wildfly-java-jdk11 | 0 | 0:8.0.3-13.GA_redhat_00007.1.el8eap |
| Red Hat:jboss_enterprise_application_platform:8.0::el8 | eap8-wildfly-java-jdk17 | 0 | 0:8.0.3-13.GA_redhat_00007.1.el8eap |
| Red Hat:jboss_enterprise_application_platform:8.0::el8 | eap8-wildfly-java-jdk21 | 0 | 0:8.0.3-13.GA_redhat_00007.1.el8eap |
| Red Hat:jboss_enterprise_application_platform:8.0::el8 | eap8-wildfly-modules | 0 | 0:8.0.3-13.GA_redhat_00007.1.el8eap |
| Red Hat:jboss_enterprise_application_platform:8.0::el9 | eap8-amazon-ion-java | 0 | 0:1.11.9-2.redhat_00001.1.el9eap |
| Red Hat:jboss_enterprise_application_platform:8.0::el9 | eap8-eap-product-conf-parent | 0 | 0:800.3.1-2.GA_redhat_00002.1.el9eap |
| Red Hat:jboss_enterprise_application_platform:8.0::el9 | eap8-eap-product-conf-wildfly-ee-feature-pack | 0 | 0:800.3.1-2.GA_redhat_00002.1.el9eap |
| Red Hat:jboss_enterprise_application_platform:8.0::el9 | eap8-undertow | 0 | 0:2.3.14-2.SP2_redhat_00001.1.el9eap |
| Red Hat:jboss_enterprise_application_platform:8.0::el9 | eap8-wildfly | 0 | 0:8.0.3-13.GA_redhat_00007.1.el9eap |
| Red Hat:jboss_enterprise_application_platform:8.0::el9 | eap8-wildfly-java-jdk11 | 0 | 0:8.0.3-13.GA_redhat_00007.1.el9eap |
| Red Hat:jboss_enterprise_application_platform:8.0::el9 | eap8-wildfly-java-jdk17 | 0 | 0:8.0.3-13.GA_redhat_00007.1.el9eap |
| Red Hat:jboss_enterprise_application_platform:8.0::el9 | eap8-wildfly-java-jdk21 | 0 | 0:8.0.3-13.GA_redhat_00007.1.el9eap |
| Red Hat:jboss_enterprise_application_platform:8.0::el9 | eap8-wildfly-modules | 0 | 0:8.0.3-13.GA_redhat_00007.1.el9eap |
| Ubuntu:16.04:LTS | undertow | 0 | No fix |
| Ubuntu:18.04:LTS | undertow | 0 | No fix |
| Ubuntu:20.04:LTS | undertow | 0 | No fix |
| Ubuntu:22.04:LTS | undertow | 0 | No fix |
| Ubuntu:24.04:LTS | undertow | 0 | No fix |
| Ubuntu:24.10 | undertow | 0 | No fix |
| Ubuntu:25.04 | undertow | 0 | No fix |
| Ubuntu:25.10 | undertow | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | undertow | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | undertow | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | undertow | 0 | No fix |
| maven | io.undertow/undertow-core | 2.3.0.Alpha1 | 2.3.17.Final |
Related vulnerabilities
- GHSA-33hj-rcmx-86mv Undertow Servlets Vulnerable to Remote DoS via OutOfMemoryError when Passed Large… Also affects io.undertow:undertow-core
- CVE-2024-4027 A flaw was found in Undertow. Also affects io.undertow:undertow-core
- CVE-2025-12543 A flaw was found in the Undertow HTTP server core, which is used in WildFly, JBoss EAP… Also affects io.undertow:undertow-core
- CVE-2024-3884 A flaw was found in Undertow that can cause remote denial of service attacks. Also affects io.undertow:undertow-core
- CVE-2024-4109 undertow: information leakage via HTTP/2 request header reuse Also affects io.undertow:undertow-core
- CVE-2023-4639 A flaw was found in Undertow, which incorrectly parses cookies with certain… Also affects io.undertow:undertow-core
- CVE-2023-1973 A flaw was found in Undertow package. Also affects io.undertow:undertow-core
- CVE-2024-3653 A vulnerability was found in Undertow. Also affects io.undertow:undertow-core