SecurityApacheHTTP/2DevOpsVulnerabilities

Apache HTTP/2 RCE (CVE-2026-119618): How to Check and Patch

person
LaunchBoosts Research Desk·AI-assisted research
7 min read

Researched and drafted with AI assistance from the 7 public sources listed at the end of this article, then published after automated editorial checks. Spotted an error? Tell us at support@launchboosts.com.

Apache HTTP/2 RCE (CVE-2026-119618): How to Check and Patch — LaunchBoosts

CVE-2026-119618 is a critical flaw in Apache HTTP Server's HTTP/2 module (mod_http2). It lets a remote attacker with no login corrupt heap memory and potentially run code on servers running versions 2.4.55 through 2.4.70 with HTTP/2 enabled. The fix is Apache 2.4.71, released on November 11, 2026, or your distribution's backported package. If you can't patch today, turning off HTTP/2 closes the hole.

This guide covers how to tell whether you're exposed, what each major platform has shipped so far, and how to mitigate safely while you wait for packages.

What the vulnerability is

According to the official Apache advisory, the bug is "concurrent execution using shared resource with improper synchronization" in the assign_headers() function of mod_http2. Put simply, it's a race condition. When concurrent threads touch the same data without proper locking, the heap can be corrupted, and that can lead to remote code execution with the privileges of the web server process.

Key facts, each checked against the sources linked:

Item Detail
CVE CVE-2026-119618 (CWE-362, race condition)
Apache severity Critical
CVSS v3.1 9.8, AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (Red Hat)
Affected httpd 2.4.55 through 2.4.70
Affected standalone mod_h2 2.0.8 through 2.0.42
Fixed in Apache HTTP Server 2.4.71 (November 11, 2026)
Precondition HTTP/2 (h2 or h2c) enabled in the Protocols directive
Authentication None required
Reported by Anthropic's OSS Scanner (October 26, 2026); Anthony Weems and Simon Scannell of Google Cloud Vulnerability Research (November 3, 2026)

The same 2.4.71 release fixes two more issues listed in the Apache advisory:

  • CVE-2026-106023 (important): a NULL pointer dereference in mod_md, the ACME certificate module, that crashes child processes. It affects 2.4.30 through 2.4.70.
  • CVE-2026-109163 (low): a one-byte stack buffer overwrite in mod_vhost_alias. It affects 2.4.69 and 2.4.70 and follows up an earlier fix for CVE-2026-63292.

Apache's advice is that almost every 2.4 deployment from 2.4.30 onward is affected by at least one of the three, so upgrading is worthwhile even if you don't use HTTP/2.

How dangerous is it in practice?

The sources don't fully agree on how exploitable it is, and you should know where they differ:

  • Red Hat says on its CVE page that "public research has demonstrated a reliable exploit" against a default configuration with mod_http2 enabled. It doesn't link that research. Red Hat also rates the issue Important rather than Critical on RHEL 9 and 10, because each HTTP/2 stream there uses its own memory allocator, which makes exploitation harder.
  • Wiz, writing on November 11, said no exploit was available and no in-the-wild exploitation had been reported. Its scans found vulnerable resources in 64% of cloud environments and publicly exposed instances in 51%. Wiz notes those figures don't account for whether HTTP/2 is actually turned on.
  • SecurityOnline lists all three CVEs as "not exploited" at publication.

The reasonable conclusion: as of November 12, 2026, nobody has publicly confirmed attacks. But the bug is pre-auth, network-reachable and scored 9.8, and at least one vendor says a reliable exploit exists. Treat it as patch-now.

This is also the second serious mod_http2 bug this year. The Hacker News notes that CVE-2026-23918 was fixed in 2.4.67 on May 4, 2026. Servers you upgraded to 2.4.67–2.4.70 for that one are still vulnerable to this one.

Step 1: Find out whether you're exposed

You're exposed if all three of these are true: your Apache version is in range, mod_http2 is loaded, and HTTP/2 is enabled for at least one listener or virtual host.

  1. Check the version.

    apachectl -v        # Debian/Ubuntu
    httpd -v            # RHEL/Fedora/Alpine
    

    Distribution packages often backport fixes without moving to 2.4.71, so a version string alone isn't proof either way. Check your package changelog against the vendor advisory (see the table below).

  2. Check whether mod_http2 is loaded.

    apachectl -M 2>/dev/null | grep -i http2
    

    If http2_module doesn't appear, the vulnerable code isn't running.

  3. Check every Protocols directive. It can be set server-wide and per virtual host, so search the whole config tree:

    grep -RniE '^\s*Protocols' /etc/apache2 /etc/httpd 2>/dev/null
    

    Any line containing h2 (HTTP/2 over TLS) or h2c (cleartext HTTP/2) means that listener is in scope. Red Hat states that HTTP/1.1-only servers are not affected.

  4. Test from the outside, against the origin.

    curl -so /dev/null -w '%{http_version}\n' --http2 https://your-origin.example.com/
    curl -so /dev/null -w '%{http_version}\n' --http2-prior-knowledge http://your-origin.example.com/
    

    A result of 2 means HTTP/2 is negotiated. Run the test against the origin's IP or internal hostname, not just the public domain. If a CDN or load balancer terminates HTTP/2, the public hostname will report 2 even when Apache itself only speaks HTTP/1.1, and the reverse can also happen.

Don't forget the less obvious Apache installs

  • Containers. Images built FROM httpd:2.4 or pinned to an older tag carry whatever Apache was current at build time. You have to rebuild, not just restart.
  • Bundled stacks. Control panels, appliance images, XAMPP-style dev stacks and vendor products sometimes ship their own httpd build. Those update on the vendor's schedule, not your OS's.
  • Internal services. An Apache that only faces your VPC is still reachable by anything that has a foothold inside. Wiz points out that a compromised Apache instance can be a jumping-off point to neighbouring microservices or cloud metadata endpoints.

Step 2: Patch, by platform

Status as of November 12, 2026, compiled from the Debian security tracker, Red Hat, Docker Hub and The Hacker News' roundup:

Platform Status What to do
Upstream source builds Fixed in 2.4.71 Build and deploy 2.4.71
Official Docker httpd image 2.4.71 tags published (Debian trixie and Alpine 3.24 variants) Pull httpd:2.4.71 or httpd:2.4.71-alpine, rebuild derived images, redeploy
RHEL 9 Fixed: RHSA-2026:98981, mod_http2-2.0.26-7.el9_9.1 dnf update mod_http2, then restart httpd
RHEL 10 Fixed: RHSA-2026:98978, mod_http2-2.0.29-5.el10_3.1 dnf update mod_http2, then restart httpd
RHEL 6, 7, 8 Not affected No action for this CVE
Red Hat JBoss Core Services Affected, no fix listed yet Disable HTTP/2 for now
Debian sid Fixed in apache2 2.4.71-1 apt upgrade
Debian bookworm, trixie, forky Listed as vulnerable, no fix yet Disable HTTP/2 and watch for a DSA
Amazon Linux 2, 2023 Fix pending Disable HTTP/2 for now
Ubuntu No CVE status page had been published when checked Disable HTTP/2 and watch for a USN

On RHEL, the fix ships in the separate mod_http2 package rather than httpd, so updating only httpd isn't enough. After any update, restart rather than reload so that every child process runs the new code, and re-run the checks in Step 1.

Standalone mod_h2 builds

If you compile the GitHub mod_h2 module yourself, be careful. Wiz says to upgrade past 2.0.42, but its own version table disagrees with that, and other write-ups mention a 2.0.43 build. The Hacker News reports that no fixed standalone release has been published and that the repository has been read-only since it was archived on June 9. Until you can confirm a patched module from a source you trust, either switch to the mod_http2 bundled with httpd 2.4.71 or turn off HTTP/2.

Step 3: Mitigate if you can't patch today

Apache's advisory doesn't list a workaround, but disabling HTTP/2 removes the vulnerable code path from reach. Wiz recommends this and Red Hat's applicability statement backs it up.

  1. In every file Step 1 flagged, change the directive to:
    Protocols http/1.1
    
    Do this in the global config and in each VirtualHost block that sets its own Protocols.
  2. Optionally, stop loading the module entirely so a forgotten vhost can't turn it back on. Use a2dismod http2 on Debian/Ubuntu, or comment out the LoadModule http2_module line on RHEL-family systems. Don't do this if the config uses HTTP/2-only directives (for example H2Push) that aren't wrapped in IfModule guards, or Apache won't start.
  3. Validate and reload:
    apachectl configtest && apachectl graceful
    
  4. Run the curl checks again and confirm they report 1.1.

What it costs you

Browsers and HTTP clients fall back to HTTP/1.1 on their own, so nothing should break functionally. The trade-off is performance. You lose multiplexing, so pages with many assets need more connections, and latency goes up on high-RTT links. If a CDN terminates HTTP/2 for visitors, most users won't notice, because the CDN-to-origin hop is often HTTP/1.1 anyway. gRPC-over-Apache setups and anything else that requires HTTP/2 end to end will break. Find those before you flip the switch, and prioritize patching them instead.

Step 4: Check for signs of compromise

No indicators of compromise had been published as of November 12. Without them, stick to the basics on any host that was exposed with HTTP/2 enabled:

  • Look for unexpected httpd child segfaults in the error log (AH00052: child pid ... exit signal Segmentation fault). A sudden cluster of them on a quiet server is worth a look, because racing a heap bug usually produces crashes before it succeeds.
  • Look for processes spawned by the web server user (www-data, apache) that don't belong there: shells, curl/wget, crypto miners.
  • On cloud hosts, review recent access to the instance metadata service and the use of any credentials attached to the instance role.
  • Make sure your EDR or runtime security tool covers web-server hosts and containers, not just laptops.

If you find anything suspicious, rotate the secrets that process could read (database credentials, API keys in environment variables, TLS private keys) and rebuild the host rather than cleaning it in place.

What to watch next

  • Distro advisories. Debian stable, Ubuntu and Amazon Linux fixes were still pending on November 12. Subscribe to their security lists and remove the HTTP/2 workaround only once you've installed a fixed package.
  • Public exploit code. Red Hat already says a reliable exploit has been shown. If proof-of-concept code turns up on GitHub or in scanners, expect mass scanning within days, so anything still unpatched by then should have HTTP/2 off.
  • AI-found bugs keep arriving. Anthropic's OSS Scanner found this one, and Google's team found it independently a week later. Two independent discoveries of the same bug within days suggests memory-safety bugs in widely deployed C servers are being found faster than before. Plan for more frequent emergency patches to your web tier, not fewer: pin and rebuild container images on a schedule, and keep a tested "disable HTTP/2" change ready to deploy.

For more patch guides like this one, see the LaunchBoosts blog.

Frequently asked questions

Which Apache versions are affected by CVE-2026-119618?

Apache HTTP Server 2.4.55 through 2.4.70 are affected, along with standalone mod_h2 builds 2.0.8 through 2.0.42. The fix shipped in Apache HTTP Server 2.4.71 on November 11, 2026. Distribution packages may carry the fix under an older version number, so check your vendor's advisory.

Am I affected if HTTP/2 is turned off?

No. Red Hat says only servers with HTTP/2 enabled through the Protocols directive (h2 or h2c) are affected, and HTTP/1.1-only servers are not. Remember that Protocols can be set per virtual host, so check every vhost and not just the main config.

Is CVE-2026-119618 being exploited in the wild?

As of November 12, 2026, nobody had publicly reported exploitation in the wild. Red Hat's advisory says public research has shown a reliable exploit against a default configuration with mod_http2 enabled. Wiz, writing on November 11, said no exploit was available. Because these accounts disagree and the CVSS score is 9.8, patch now rather than wait for exploit code to appear.

How do I mitigate CVE-2026-119618 if I can't upgrade yet?

Remove h2 and h2c from every Protocols directive so only http/1.1 remains, then validate the config and reload Apache. Apache's own advisory doesn't list a workaround, but Wiz recommends this and Red Hat confirms that HTTP/1.1-only servers aren't affected. Browsers fall back to HTTP/1.1 automatically, so the main cost is some performance.

Does a CDN or load balancer in front of Apache protect me?

Only if the edge talks HTTP/1.1 to your origin and the origin can't be reached any other way. If the origin's IP is exposed, or the proxy forwards HTTP/2 or h2c, attackers can still reach mod_http2. Test the origin directly, not just your public hostname.

Sources

  1. Apache HTTP Server 2.4 vulnerabilities (official advisory)— httpd.apache.org
  2. Wiz: Critical RCE Vulnerability in Apache HTTP Server — Everything You Need To Know— wiz.io
  3. The Hacker News: Critical Apache HTTP/2 Flaw Could Let Unauthenticated Attackers Execute Code Remotely— thehackernews.com
  4. Red Hat CVE page: CVE-2026-119618— access.redhat.com
  5. Debian Security Tracker: CVE-2026-119618— security-tracker.debian.org
  6. SecurityOnline: CVE-2026-119618 Apache HTTP Server RCE fixed in 2.4.71— securityonline.info
  7. Docker Hub: official httpd image— hub.docker.com
person

LaunchBoosts Research Desk

AI-assisted research

Explainers on software and AI industry trends, drafted with AI assistance from the public sources cited in each article and published after automated editorial checks for length, independent sourcing and originality.