Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessEntropy driver fails during early boot
-
DeliveryDevice latches all-zero TCP ISN key
-
ExploitObserve one server ISN off-path
-
ExecutionRecover shared device time offset
-
PersistCompute predictable ISNs offline
-
ImpactBlind-spoof, inject, or reset TCP connections
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Cryptographic random values
|
| Exploitation Conditions | Requires CONFIG_NET_TCP_ISN_RFC6528 to be enabled AND the cryptographic random source to FAIL at boot: sys_csrand_get() returning an error (e.g. -ENODEV/-EIO from the entropy driver in random_entropy_device.c while the hardware RNG is still gathering entropy, or psa_generate_random() failing in random_psa.c when PSA crypto is uninitialised or backed by an HCI entropy device that is not yet up). The poisoned all-zero key is only latched if that specific failure occurs during the first TCP connection's key generation; devices whose entropy source never errors are not vulnerable. Limiting factors: the attacker must observe at least one ISN off-path, the victim peer must trust the source address for spoofing to matter, and exploitation is confined to boots where the RNG failure coincides with the key-generation window (an attacker can only indirectly influence this by reaching a listening port right after boot or provoking a reboot). No authentication is needed (PR:N). |
| Impact | The signals converge on a conditional, moderate-severity issue rather than a top priority. The CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N, base 4.8) correctly flags AC:H because exploitation is gated on a precondition outside the attacker's direct control: sys_csrand_get() must fail at boot (e.g. -ENODEV/-EIO from the entropy driver, or psa_generate_random() failing before PSA crypto / an HCI entropy source is up), leaving unique_key as all-zero BSS. Only then does the ISN become a public function of the four-tuple plus a recoverable device time offset, enabling off-path blind spoofing, data injection, and reset - consistent with the C:L/I:L rating. Exploitation status is 'no public exploit identified at time of analysis': the input shows no CISA KEV listing and no POC flag, and no EPSS score was provided, so there is no evidence of active or at-scale exploitation. The vendor patch is confirmed. Net: a real but narrow weakness - devices on robust hardware whose entropy source never errors were never in the weak state, so this is a defense-in-depth fix for a cryptographic-failure edge case rather than a broadly exploitable network flaw. No CVSS-vs-description conflict was found; the AC:H rating is well justified by the entropy-failure dependency. |
| Exploit ScenarioDerived | A Zephyr device using CONFIG_NET_TCP_ISN_RFC6528 boots while its hardware RNG is still gathering entropy, sys_csrand_get() returns an error, and the all-zero key silently governs every TCP connection for that boot. An off-path attacker observes a single ISN from one connection, solves offline for the device-wide time offset, and can then predict the ISN for any other four-tuple to blindly spoof, inject into, or reset TCP connections with address-trusting peers. No public exploit code is identified, and the AC:H rating reflects the required entropy-source failure. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 11, 2026
Predictable TCP initial sequence numbers in Zephyr RTOS allow off-path attackers to defeat RFC 6528 spoofing protection and perform blind TCP connection spoofing, data injection, or connection resets, but only on devices where the cryptographic random source fails exactly when the ISN secret key is first generated at boot. The flaw is a discarded return value from sys_csrand_get() that latches the 'key already generated' guard even on failure, leaving a 128-bit secret as all zeros for the entire boot; exploitation additionally requires the attacker to observe at least one ISN off-path and the spoofed peer to trust source addresses, and no public exploit was identified at time of analysis. The assessed vector is CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N (4.8), reflecting an unauthenticated remote issue whose high attack complexity and conditional preconditions keep it moderate rather than critical, and the signals converge on a conditional, moderate-severity issue rather than a top priority.
RemediationAI
Apply the upstream fix commit 700888e3ecff8474f4fe7dfa8782b8869053222b (referenced from vendor advisory GHSA-37mc-2q9v-fp64) or update to a Zephyr release that includes it; the change moves key generation into a mutex-protected tcp_init_isn_key() helper that latches unique_key_valid only on success, logs NET_ERR("Cannot generate secret key for TCP ISN") on failure, and makes the RFC 6528 path conditional so that a failure falls back to the previously used sys_rand32_get() behaviour instead of hashing with a known-constant key. Patch status is "Upstream fix available (PR/commit); released patched version not independently confirmed" because the supplied patch reference is a Git commit rather than a tagged release, so integrators should pin to that commit or a release known to contain it. If the fix cannot be deployed immediately, two compensating controls are available: first, disable CONFIG_NET_TCP_ISN_RFC6528 so the stack deterministically uses sys_rand32_get(), which eliminates the degenerate all-zero-key condition but lowers ISN entropy quality relative to the RFC 6528 requirement and should be treated as a temporary measure; second, guarantee that the entropy source is operational before the network stack accepts connections, for example by deferring network bring-up until the hardware RNG has finished gathering entropy or by ensuring PSA crypto is initialized ahead of any TCP activity, at the cost of a longer boot-to-network delay. Restricting which peers can reach listening ports (source-address filtering, no untrusted WAN exposure) reduces the window for the boot-time race but does not eliminate it against peers that trust spoofed source addresses.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Zephyr's RFC 6528 ISN derivation in subsys/net/ip/tcp.c computed each TCP initial sequence number as SHA-256(unique_key || four-tuple) plus an uptime-derived offset, where unique_key is a 128-bit BSS-resident secret populated once by sys_csrand_get(). The original code ignored that function's return value and set a static 'once' guard to true unconditionally, so a single failed entropy call permanently froze the key at its zero-initialized content for the remainder of the boot, with no retry, no NET_ERR log, and no fallback path. The failure mode is realistic rather than theoretical: sys_csrand_get() deliberately propagates entropy-driver errors instead of filling the destination buffer, and the in-tree comment in subsys/random/random_entropy_device.c notes the hardware RNG "might still be gathering entropy during early boot situations", returning -ENODEV/-EIO; similarly psa_generate_random() in subsys/random/random_psa.c fails when PSA crypto is uninitialized or backed by a Bluetooth-HCI entropy device that is not yet up. Because tcp_init_isn() runs on every passive open in tcp_conn_new() and every active open in net_tcp_connect(), the poisoned key governs all TCP connections for that boot, and the first connection is what triggers generation, giving a remote peer indirect influence over timing by hitting a listening port immediately after boot or provoking a reboot. This is CWE-330 (Use of Insufficiently Random Values): with an all-zero key the ISN reduces to a public function of the four-tuple and a device-wide time offset, so an attacker can precompute the hash term for candidate four-tuples and recover the shared offset from one observed ISN, making subsequent ISNs predictable and defeating the RFC 6528 threat model that expects a key "known to an off-path attacker" to be impossible.
Know when Zephyr gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Off-path network attacker, no auth (AV:N/PR:N); AC:H because success depends on an entropy-source failure outside attacker control; blind injection/reset yields C:L/I:L with no direct availability impact.
Primary rating from Vendor (zephyr).
CVSS VectorVendor: zephyr
DescriptionCVE.org
The RFC 6528 initial-sequence-number implementation in subsys/net/ip/tcp.c derived every TCP ISN from SHA-256(unique_key || four-tuple) plus a uptime-derived offset, where unique_key is a 128-bit secret filled once by sys_csrand_get(). The return value of that call was discarded and the once guard was latched to true even when the call failed. Because sys_csrand_get() leaves the destination buffer untouched on failure (it deliberately propagates the entropy-driver error rather than filling the buffer), a single failed call left unique_key as its all-zero BSS content for the remainder of the boot, with no retry, no log message and no fallback.
A failure of the cryptographic random source is required to reach the weak state - for example -ENODEV/-EIO from the entropy driver in subsys/random/random_entropy_device.c (the in-tree comment notes that the hardware RNG "might still be gathering entropy during early boot situations"), or psa_generate_random() failing in subsys/random/random_psa.c when PSA crypto is not initialised or is backed by a Bluetooth-HCI entropy device that is not yet up. The first TCP connection is what triggers key generation, so a remote peer that reaches a listening port immediately after boot, or that can provoke a reboot, has indirect influence over whether generation coincides with that window. tcp_init_isn() is called for every passive open in tcp_conn_new() and every active open in net_tcp_connect(), so the poisoned key governs all TCP connections for that boot.
With an all-zero key the ISN becomes a public function of the connection four-tuple plus a device-wide time offset. An off-path attacker can compute the hash term offline for any four-tuple and recover the shared time offset from a single observed ISN, after which the ISN the device will pick for other four-tuples is predictable. That defeats exactly the protection RFC 6528 provides: blind TCP connection spoofing against peers that trust the source address, and blind data injection into or reset of connections whose four-tuple can be guessed. Devices whose entropy source never errors were never in the weak state.
The fix moves key generation into a single guarded helper that latches only on success, logs the error otherwise, and makes tcp_init_isn() fall back to sys_rand32_get() - the behaviour already used when CONFIG_NET_TCP_ISN_RFC6528 is disabled - instead of hashing with a known-constant key.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),
An out-of-bounds write in the Zephyr RTOS DNS resolver (dns_unpack_name()) lets a crafted DNS response corrupt memory on
Possible variant of CVE-2021-3434 in function le_ecred_reconf_req. Rated critical severity (CVSS 9.8), this vulnerabilit
Unchecked user input length in /subsys/net/l2/wifi/wifi_shell.c can cause buffer overflows. Rated critical severity (CVS
Potential buffer overflow vulnerability in the Zephyr CAN bus subsystem. Rated critical severity (CVSS 9.8), this vulner
Integer Underflow in 6LoWPAN IPHC Header Uncompression in Zephyr. Rated critical severity (CVSS 9.8), this vulnerability
Buffer overflow in Zephyr USB DFU DNLOAD. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable
DOS: Incorrect 802154 Frame Validation for Omitted Source / Dest Addresses. Rated critical severity (CVSS 9.8), this vul
zephyr-rtos version 1.12.0 contains a NULL base pointer reference vulnerability in sys_ring_buf_put(), sys_ring_buf_get(
Potential buffer overflow vulnerabilities n the Zephyr Bluetooth subsystem. Rated critical severity (CVSS 9.6), this vul
The documentation specifies that the BT_GATT_PERM_READ_LESC and BT_GATT_PERM_WRITE_LESC defines for a Bluetooth characte
Potential buffer overflows in the Bluetooth subsystem due to asserts being disabled in /subsys/bluetooth/host/hci_core.c
EUVD-2026-97114
NVD
CVE.org
EPSS
GitHub
Exploit-DB