CVE-2026-87045
Last modified
CVE-2026-87045 is a high-severity vulnerability rated 7.5/10 on the CVSS scale. The HTTP/2 server in subsys/net/lib/http/http_server_http2.c clears the connection's stream binding at the start of every frame. handle_http_frame_header() executed client->current_stream = NULL unconditionally, but a CONTINUATION frame does not open a new stream and enter_http_frame_continuation_state() never re-bound one, so the rest of the header block was processed with client->current_stream unset.
Description
The HTTP/2 server in subsys/net/lib/http/http_server_http2.c clears the connection's stream binding at the start of every frame. handle_http_frame_header() executed client->current_stream = NULL unconditionally, but a CONTINUATION frame does not open a new stream and enter_http_frame_continuation_state() never re-bound one, so the rest of the header block was processed with client->current_stream unset. Two paths then write through the NULL pointer. A request for an unregistered resource, or a method the matched resource does not support, is answered by send_http2_404() or send_http2_405(), and both call send_headers_frame(), which unconditionally sets client->current_stream->headers_sent = true. A POST, PUT or PATCH to a registered dynamic resource reaches handle_http2_dynamic_resource(), which unlike its siblings (handle_http2_static_resource(), dynamic_get_del_opts_req_v2(), dynamic_post_put_req_v2()) had no client->current_stream == NULL guard, and stores through the pointer with client->current_stream->current_detail = dynamic_detail. Any peer that can reach the server can trigger this without authentication or prior state. A single stray CONTINUATION frame with END_HEADERS set, sent right after the client preface and requesting any unregistered path, is enough, because nothing rejected a CONTINUATION that no HEADERS frame had opened. A legitimate split header block (a HEADERS frame with END_HEADERS clear whose payload ends on a header-field boundary, then a CONTINUATION with END_HEADERS set) reaches the same state. The in-tree test test_http2_post_headers_with_continuation() did not catch this because it splits the header block mid field, which takes the handle_incomplete_http_header() shortcut that keeps the stream bound. The result is a write to a fixed low address (a small offset into struct http2_stream_ctx), which faults on mainstream targets (flash/vector-table region on Cortex-M, or a trap under MPU/MMU null-pointer detection), and the default fatal-error handler halts the system. Impact is an unauthenticated, remotely triggerable denial of service against any device running the HTTP/2 server: the 404 path needs no particular resource to be registered, and HTTP/2 is built into CONFIG_HTTP_SERVER with cleartext h2c accepted, so TLS does not prevent it. Neither the target address nor the written value is attacker-controlled, so there is no confidentiality or integrity impact. Applications built without CONFIG_HTTP_SERVER are not affected.
Metrics
Weakness Enumeration
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| zephyrproject | zephyr | >= 4.1.0, < 4.3.2; >= 4.4.0, < 4.5.0 |
References
Timeline
- Published
- Last Modified
- Status
- Awaiting Analysis
Frequently Asked Questions
What is CVE-2026-87045?
How severe is CVE-2026-87045?
How do I fix CVE-2026-87045?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-87039The user-mode syscall verifier z_vrfy_i2s_configure() in dri…7.8
- CVE-2026-8704Crypt::DSA versions through 1.19 for Perl use 2-args open, a…6.5
- CVE-2026-87040The nRF link-layer receive paths of the open-source Bluetoot…8.3
- CVE-2026-87041The RTIO submission-queue verifier rtio_vrfy_sqe() in subsys…7.8
- CVE-2026-87043The entropy-device random number generator in subsys/random/…4.8
- CVE-2026-87044The Mbed TLS crypto shim driver in drivers/crypto/crypto_mbe…6.5
- CVE-2026-87046Tanium addressed an improper access controls vulnerability i…4.3
- CVE-2026-87047Tanium addressed an improper access controls vulnerability i…6.3
- CVE-2026-87048Tanium addressed an improper access controls vulnerability i…5.4
- CVE-2026-8705The ClearSale Total plugin for WordPress is vulnerable to SQ…7.5
- CVE-2026-8706Firefox for iOS hosted Reader mode on an unauthenticated loc…6.5
- CVE-2026-87067The Forminator Forms WordPress plugin before 1.57.2.1 does …8.5
Are you affected by CVE-2026-87045?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
