# CVE-2021-31618: NULL pointer dereference on specially crafted HTTP/2 request

> An attacker can crash the Apache HTTP Server child process by sending a specially crafted HTTP/2 request with an oversized header, causing a denial of service.

- **Severity:** High 7.5 (`CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 15 Jun 2021
- **Updated:** 3 Aug 2024
- **Also known as:** ALPINE-CVE-2021-31618, AZL-44166, BIT-apache-2021-31618, CLEANSTART-2026-YH82036, DEBIAN-CVE-2021-31618, GHSA-4jq3-qrx6-87cc

## What is CVE-2021-31618?

CVE-2021-31618 is a high-severity vulnerability in Apache Http Server, published on 15 Jun 2021. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official description

Apache HTTP Server protocol handler for the HTTP/2 protocol checks received request headers against the size limitations as configured for the server and used for the HTTP/1 protocol as well. On violation of these restrictions and HTTP response is sent to the client with a status code indicating why the request was rejected. This rejection response was not fully initialised in the HTTP/2 protocol handler if the offending header was the very first one received or appeared in a a footer. This led to a NULL pointer dereference on initialised memory, crashing reliably the child process. Since such a triggering HTTP/2 request is easy to craft and submit, this can be exploited to DoS the server. This issue affected mod_http2 1.15.17 and Apache HTTP Server version 2.4.47 only. Apache HTTP Server 2.4.47 was never released.

Weakness: CWE-476 (NULL Pointer Dereference)

## Which versions are affected by CVE-2021-31618?

1 open source package ship an affected version, including apache. It affects 6 products.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `apache` | Bitnami | From 1.15.17 | 1.15.18, 2.4.48 |

Products: Apache Http Server, Debian Debian Linux, Fedoraproject Fedora, Oracle Enterprise Manager Ops Center, Oracle Instantis Enterprisetrack, Oracle Zfs Storage Appliance Kit.

## How do I fix CVE-2021-31618?

Upgrade apache to a fixed version for your release line: 1.15.18 or 2.4.48.

## Is CVE-2021-31618 being exploited?

There is no known exploitation of CVE-2021-31618 in the wild and no public exploit code.

## Other vulnerabilities in Apache Http Server

- [CVE-2021-42013](https://insights.sbomify.com/CVE-2021-42013/): Apache HTTP Server Path Traversal (critical 9.8, exploited in the wild)
- [CVE-2024-38475](https://insights.sbomify.com/CVE-2024-38475/): Apache HTTP Server Improper Escaping of Output (critical 9.1, exploited in the wild)
- [CVE-2021-40438](https://insights.sbomify.com/CVE-2021-40438/): Apache HTTP Server-Side Request Forgery (SSRF) (critical 9.0, exploited in the wild)
- [CVE-2019-0211](https://insights.sbomify.com/CVE-2019-0211/): Apache HTTP Server Privilege Escalation (high 7.8, exploited in the wild)
- [CVE-2021-41773](https://insights.sbomify.com/CVE-2021-41773/): Apache HTTP Server Path Traversal (high 7.5, exploited in the wild)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2021-31618 and fix it if it is affected.

What it is: CVE-2021-31618 is a high-severity vulnerability in Apache Http Server, published on 15 Jun 2021. An attacker can exploit it over the internet without logging in, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2021-31618 in the wild and no public exploit code.

Affected packages and fixed versions:
- apache (Bitnami): affected from 1.15.17; fixed in 1.15.18, 2.4.48

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2021-31618/ (Markdown: https://insights.sbomify.com/CVE-2021-31618/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2021-31618
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2021-31618
- OSV: https://osv.dev/vulnerability/CVE-2021-31618

---
From sbomify Insights: https://insights.sbomify.com/CVE-2021-31618/
Summaries are generated and may contain mistakes; the official description above is the record.
