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.
The product does not release or incorrectly releases a resource before it is made available for re-use.
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 | * |