CVE Vulnerabilities

CVE-2023-45802

Improper Resource Shutdown or Release

Published: Oct 23, 2023 | Modified: Nov 21, 2024
CVSS 3.x
5.9
MEDIUM
Source:
NVD
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS 2.x
RedHat/V2
RedHat/V3
7.5 MODERATE
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Ubuntu
MEDIUM

When a HTTP/2 stream was reset (RST frame) by a client, there was a time window were the requests memory resources were not reclaimed immediately. Instead, de-allocation was deferred to connection close. A client could send new requests and resets, keeping the connection busy and open and causing the memory footprint to keep on growing. On connection close, all resources were reclaimed, but the process might run out of memory before that.

This was found by the reporter during testing of CVE-2023-44487 (HTTP/2 Rapid Reset Exploit) with their own test client. During normal HTTP/2 use, the probability to hit this bug is very low. The kept memory would not become noticeable before the connection closes or times out.

Users are recommended to upgrade to version 2.4.58, which fixes the issue.

Weakness

The product does not release or incorrectly releases a resource before it is made available for re-use.

Affected Software

Name Vendor Start Version End Version
Http_server Apache 2.4.17 (including) 2.4.58 (excluding)
JBoss Core Services for RHEL 8 RedHat jbcs-httpd24-mod_http2-0:1.15.19-32.el8jbcs *
JBoss Core Services on RHEL 7 RedHat jbcs-httpd24-mod_http2-0:1.15.19-32.el7jbcs *
Red Hat Enterprise Linux 8 RedHat httpd:2.4-8100020240405103607.e155f54d *
Red Hat Enterprise Linux 8.8 Extended Update Support RedHat httpd:2.4-8080020240502175002.63b34585 *
Red Hat Enterprise Linux 9 RedHat mod_http2-0:2.0.26-1.el9 *
Text-Only JBCS RedHat mod_http2 *
Apache2 Ubuntu bionic *
Apache2 Ubuntu devel *
Apache2 Ubuntu focal *
Apache2 Ubuntu jammy *
Apache2 Ubuntu lunar *
Apache2 Ubuntu mantic *
Apache2 Ubuntu noble *
Apache2 Ubuntu oracular *
Apache2 Ubuntu trusty *
Apache2 Ubuntu upstream *
Apache2 Ubuntu xenial *

Potential Mitigations

  • Use a language that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.
  • For example, languages such as Java, Ruby, and Lisp perform automatic garbage collection that releases memory for objects that have been deallocated.

References