CVE-2026-124040: CivetWeb HTTP/2 Flaw Risks Server Crash

A critical vulnerability in the CivetWeb web server could let an unauthenticated attacker confuse a server about what a request is asking for, or crash it altogether. The flaw, tracked as CVE-2026-124040, affects CivetWeb through version 1.16 when the software is built with HTTP/2 support switched on, and it was updated in the public vulnerability record on 8 November 2026.
CivetWeb is an open-source web server that is often embedded inside other software and devices, rather than run as a standalone product. That makes the flaw harder to spot than a bug in a familiar desktop application: administrators may not realise that a device or service on their network is running CivetWeb at all, let alone running it with HTTP/2 enabled. Any system that does use the affected build needs to be checked, even if CivetWeb itself was never installed on purpose.
The vulnerability is a use-after-free flaw, catalogued as CWE-416, in the function that handles HTTP/2 traffic, known as handle_http2(). In simple terms, the server frees a piece of memory that holds details of an earlier request, but keeps a pointer to that memory and later reads from it as if it were still valid. The details in question are two pieces of information that travel with every HTTP/2 request: the :method pseudo-header, which says whether the request is, for example, a GET or a POST, and the :path pseudo-header, which says which page or resource is being requested.
According to the vulnerability description published in the National Vulnerability Database, an unauthenticated remote attacker can send a later HEADERS frame that leaves out those two pseudo-headers. Because the server still holds the freed pointers, it can end up using the stale method and path from the earlier request when it decides how to handle the new one. That matters because access rules, such as rules that block certain paths or restrict certain types of request, are applied on the basis of the method and path the server believes it has received. If the server is working from the wrong values, a request that should have been blocked could be treated as allowed.
The same flaw can also be used to crash the server. A use-after-free error can corrupt the server's memory, and in this case the published description states plainly that an attacker can crash the server by exploiting it. For a small embedded device or a service that depends on the web server staying up, that alone could cause a meaningful outage, even if no data is stolen.
Vulnerability trackers rate the flaw as critical, with a CVSS 4.0 score of 9.2. The scoring vector published by VulnCheck through the National Vulnerability Database records the attack as possible over a network, with no privileges and no user interaction required, although the attack itself is rated as high complexity. The estimated chance of exploitation within 30 days is below one percent, according to the EPSS scoring system, and the flaw is not known to have been exploited in the wild.
There is an important gap in the public record: the CVE entry does not list a fixed version. Users cannot simply look for a single version number that closes the hole. The practical advice published alongside the record is to update to a newer version if one is available from the vendor, or to disable HTTP/2 support. The flaw only exists in builds compiled with USE_HTTP2 and with the enable_http2 option turned on, so switching HTTP/2 off removes the vulnerable code path entirely. That is the safest immediate step for any operator who cannot confirm that their build is patched.
Administrators should first find out whether CivetWeb is present in their environment and, if so, which version is running and whether HTTP/2 is enabled. Embedded software is easy to overlook, so the check should cover network appliances, monitoring tools, and other products that bundle a small web server for their management interface, not just servers that were deliberately set up to run CivetWeb. Where HTTP/2 is not needed, disabling it is a straightforward mitigation. Where it is needed, operators should watch for an updated release and apply it as soon as the vendor makes one available.
The disclosure is a reminder that the most dangerous flaws are not always in the biggest names in software. A small, widely embedded component can carry a critical vulnerability into places its users never think to look, and a server that misreads its own requests can quietly undermine the access controls placed in front of it. Checking what is actually running, rather than what was deliberately installed, is the first step in closing that gap.