CVE-2026-43029: MPTCP MSG_PEEK|MSG_WAITALL Soft Lockup Linux Kernel DoS

CVE-2026-43029 is a Linux kernel denial-of-service vulnerability, published by NVD on May 1, 2026, in which Multipath TCP receive handling can spin indefinitely when an application reads with MSG_PEEK | MSG_WAITALL, producing a soft lockup and high availability impact. The bug is not a headline-grabbing remote-code-execution monster, and that is precisely why it deserves attention. It sits in the part of the stack administrators tend to trust by default: the kernel networking path, where a small semantic mismatch can turn into a CPU that stops doing useful work. For WindowsForum readers who run Linux servers, WSL-adjacent workloads, appliances, containers, or mixed-platform fleets, the lesson is blunt: kernel availability bugs are operational security bugs.

Infographic shows Linux server network receive path with soft lockup CPU hot loop risk warnings.A Small Receive-Path Mistake Becomes a System Problem​

The core of CVE-2026-43029 is almost deceptively mundane. Multipath TCP, or MPTCP, extends TCP so a single connection can use multiple network paths, a feature that matters for resilience, mobility, and bandwidth aggregation. In this case, the failure appears when a receiver combines two long-standing socket behaviors: peeking at data without consuming it, and waiting until the requested amount of data is available.
That combination is legal, but it is also awkward. MSG_PEEK asks the kernel to show the application data while leaving the socket buffer intact. MSG_WAITALL asks the kernel not to return early if it can avoid doing so. In ordinary TCP receive logic, the kernel has to know whether it is making progress or merely staring at the same buffer again.
CVE-2026-43029 is what happens when that accounting goes wrong. The socket buffer, or skb, remains on sk_receive_queue because the application is peeking rather than consuming. The wait helper sees data present and decides there is no reason to sleep, but the receive loop has not actually advanced in the way it needs to. The result is a hot loop rather than a proper wait, and syzbot caught it as a soft lockup with a CPU stuck for more than two minutes.
That distinction matters. This is not a memory-corruption primitive, an authentication bypass, or a leak of secret material. It is a path to making kernel time disappear. Availability is often treated as the least glamorous member of the CIA triad, but anyone who has watched a production host become unresponsive under a pathological networking workload knows better.

The CVSS Score Is Doing Its Job, But It Does Not Tell the Whole Story​

Kernel.org’s CVSS 3.1 score for the issue is 7.5, with a vector of network attack, low complexity, no privileges, no user interaction, unchanged scope, no confidentiality impact, no integrity impact, and high availability impact. That is a tidy description of the vulnerability class. It is also a reminder that scoring systems compress messy engineering realities into a string.
The “network” part is what will make many defenders look twice. A flaw that can be reached over the network and does not require credentials is categorically different from a local-only crash bug. At the same time, the practical exploitability depends on whether the target exposes MPTCP-capable services, how the distribution configures MPTCP, whether the application’s receive path uses the relevant flags, and how reachable the affected code path is from untrusted clients.
That last caveat should not be mistaken for comfort. Many denial-of-service bugs are not exploitable in every default installation, yet still matter because modern infrastructure is heterogeneous. Kernel features find their way into load balancers, mobile gateways, embedded Linux devices, lab clusters, and tuned server builds long before every asset inventory catches up.
NVD’s own enrichment, as of the user-provided record, lagged the CNA scoring and showed NIST CVSS fields as not yet provided while adding weakness and CPE information later. That is normal for the vulnerability pipeline, but it is also why organizations should avoid treating the first NVD page view as the final word. For Linux kernel CVEs in particular, the authoritative signal often sits in the stable tree, distribution advisories, and the patch itself.

MPTCP Is No Longer an Academic Curiosity​

MPTCP has lived an odd life in infrastructure consciousness. For years it felt like one of those elegant networking ideas that protocol engineers loved more than production operators did. The promise was obvious: keep a connection alive across multiple paths, use Wi-Fi and cellular together, improve resilience when routes shift, and make transport less brittle in a multi-homed world.
The Linux kernel made MPTCP real enough that it is now something administrators need to account for, even if they have never deliberately designed around it. Once a feature enters the kernel, it becomes part of the attack surface calculation. Whether an individual deployment uses it consciously is only part of the question.
That is especially true in mixed environments. Windows-heavy shops increasingly run Linux in places that are not branded as “Linux servers” in the old sense: Kubernetes nodes, security appliances, NAS boxes, CI runners, developer workstations, WSL-backed toolchains, edge gateways, and container hosts buried inside larger products. A Windows administrator may not care about MPTCP as a protocol feature and still be responsible for a vulnerable kernel somewhere in the estate.
The uncomfortable truth is that kernel networking code is both mature and constantly in motion. It has to reconcile old socket semantics with new transport abstractions. MSG_PEEK is not new. MSG_WAITALL is not new. MPTCP’s job is to make multipath behavior look enough like TCP that applications do not need to be rewritten. CVE-2026-43029 appears in that compatibility layer, where “looks like TCP” must also mean “waits like TCP.”

Syzbot Shows Why Boring Bugs Keep Getting Found​

The report traces back to syzbot, the automated fuzzing infrastructure that has become one of the most important background characters in Linux kernel security. Syzbot does not need a marketing name for a bug to matter. It feeds the kernel strange combinations of syscalls and flags until assumptions break.
That matters because CVE-2026-43029 is not the sort of flaw a normal application test suite is likely to catch. A developer might test ordinary reads, blocking reads, nonblocking reads, and peeks. They might not test the exact interaction of MPTCP receive handling, MSG_PEEK, MSG_WAITALL, socket buffer queue semantics, and wait-loop progress. Fuzzers live in that negative space.
The reported trace is useful because it points directly at the failure mode. The CPU is stuck in sk_wait_data, called from mptcp_recvmsg, then through the ordinary inet_recvmsg and socket receive syscall path. That is not a weird out-of-tree driver exploding. It is the network receive path doing something plausible often enough that the watchdog notices.
The fix described in the CVE is similarly revealing. The patch adds a last parameter to track the last peeked socket buffer, so the wait logic can distinguish between genuinely new available data and the same already-peeked buffer. In other words, the kernel needs a memory of its own progress. Without that memory, the presence of data becomes misleading.
This is the kind of bug that flatters nobody’s abstractions. From the application’s point of view, peeking should be harmless. From the wait helper’s point of view, data on the queue should mean something is available. From the MPTCP layer’s point of view, it is trying to emulate familiar stream behavior over a more complex substrate. All three intuitions are individually reasonable; together, they produced a lockup.

The Patch Is Small Because the Invariant Is Subtle​

Kernel patches that fix serious bugs are often disappointingly small to outsiders. There is no grand rewrite, no dramatic deletion of a failed subsystem, no giant block comment admitting defeat. Instead, there is a precise adjustment to state tracking, often in a place where one missing condition changes everything.
That appears to be the case here. The vulnerability description says the fix adds tracking for the last peeked skb, allowing sk_wait_data() to make better waiting decisions. That is not a cosmetic change. It restores a basic invariant: if a receive operation is not consuming data, the kernel still has to know whether the operation is observing new progress or looping over the same object.
The weakness entry in the NVD material identifies improper locking, but the operational behavior is broader than what many readers associate with a lock bug. A soft lockup does not necessarily mean a traditional deadlock where two threads each hold a resource the other needs. It can mean a CPU is spinning in kernel mode long enough that the watchdog concludes the system is not scheduling normally.
That difference is important for triage. Administrators sometimes discount soft lockups because they sound less catastrophic than panics. In production, the distinction may be academic. A host that stops scheduling work predictably, burns CPU, or becomes unresponsive under input an attacker can influence is a host whose availability has been compromised.
The patch’s presence in the stable tree is also part of the story. Kernel vulnerabilities are not fixed when a CVE record exists; they are fixed for users when the relevant vendor or distribution ships a kernel containing the backport and the machine boots into it. In Linux operations, installed and running are different states, and kernel patching punishes anyone who forgets that.

Version Lists Are a Map, Not a Verdict​

The CPE material in the provided NVD change history names Linux kernel 6.18, several 6.18 release candidates, 7.0 release candidates, ranges from 6.19 up to but excluding 6.19.12, ranges from 6.18.1 up to but excluding 6.18.22, and specific stable versions including 6.6.117, 6.12.59, and 6.17.8. That is useful, but it should not be read as a clean asset-management answer.
Kernel versioning is messy in real fleets. Enterprise distributions routinely backport fixes without changing to an upstream-looking kernel number that makes vulnerability scanners happy. Cloud vendors may carry patched kernels with provider-specific version strings. Appliance vendors may sit on customized builds where upstream CPE matching is only a rough guide.
That is why the administrator’s question should not be “Does my scanner show the exact CPE?” The better question is “Has my vendor shipped the patch corresponding to the MPTCP receive fix, and am I actually running that fixed kernel?” For upstream kernels, the version ranges help. For distribution kernels, the advisory and package changelog usually matter more.
There is also a timing problem. The NVD record was published on May 1, 2026, modified by kernel.org on May 3, and then enriched by NIST on May 8 according to the supplied record. In the days between those steps, defenders could easily see partial data: a description without full scoring, a score without complete product matching, or product matching without vendor package status.
This is not a failure unique to NVD. It is the nature of the modern CVE supply chain. A bug moves from a fuzzer report to a patch, from a patch to stable branches, from stable branches to CVE metadata, from metadata to vendor advisories, from advisories to packages, and from packages to running systems. Every handoff introduces lag.

Windows Shops Should Not Treat This as Someone Else’s Kernel​

WindowsForum is not a Linux kernel mailing list, but this CVE still belongs here. The old boundary between Windows administration and Linux administration has collapsed in practical terms. A Windows-first organization can still rely on Linux for container orchestration, network services, observability pipelines, hypervisor hosts, Git infrastructure, security tooling, and developer environments.
WSL complicates the mental model further. CVE-2026-43029 is a Linux kernel issue, not a Windows kernel issue, and Windows users should not read it as an immediate defect in the Windows TCP/IP stack. But many Windows developers now run Linux userlands daily, and some organizations allow WSL-based workflows to connect deeply into internal networks. If a vulnerable Linux kernel is in use, the fact that the laptop badge says Windows does not magically erase the Linux attack surface.
The more direct exposure is server-side. If an organization runs Linux hosts with MPTCP enabled or deploys products that enable it under the hood, then the vulnerability becomes part of the availability risk register. The CVSS vector says no privileges and no user interaction, which is exactly the sort of combination that keeps edge-service administrators awake.
The prudent response is neither panic nor dismissal. Most Windows-centric environments will not have a public MPTCP service sitting exposed by accident. But the only defensible way to know that is to check. Features that are “probably not used” have a habit of becoming incident-report footnotes.

Denial of Service Is the Security Category Everyone Rediscovers During Outages​

The security industry has trained itself to rank vulnerabilities by attacker glamour. Remote code execution wins attention. Privilege escalation gets headlines. Information disclosure earns concern if the leaked material is vivid enough. Denial of service is often treated as the dull category at the end of the advisory.
That bias is a mistake. Availability is the security property customers experience most directly. They may never know whether a memory disclosure almost happened, but they will notice when an API stops responding, a gateway locks up, or a host has to be power-cycled because the scheduler is starved.
CVE-2026-43029 is a good example because it does not need to corrupt data to hurt operations. A carefully shaped receive pattern can push the kernel into spending time in the wrong place. If the affected path is reachable in a service context, the impact is not theoretical: capacity vanishes, monitoring lights up, and the incident response clock starts.
The cloud era has made this more, not less, relevant. Autoscaling can hide certain availability faults until it multiplies cost or exhausts quotas. Container orchestration can restart workloads while leaving a host-level kernel problem unresolved. Load balancers can route around bad nodes, but only if enough healthy nodes remain. A kernel soft lockup sits below many of the abstractions operators use to recover.
The phrase “high availability impact” in the CVSS vector is doing real work here. It is not saying every laptop is doomed or every server is trivially crashable from the Internet. It is saying the vulnerability’s security consequence is loss of service, and that defenders should evaluate exposure accordingly.

The Real Risk Is in the Gap Between Upstream and Running Kernels​

Linux kernel patching has a peculiar rhythm. Upstream moves fast, stable trees absorb fixes, distributions package and test, vendors publish advisories, and administrators schedule reboots at times that annoy the fewest people. Every step is rational. The accumulated delay is where risk lives.
CVE-2026-43029 should push teams to examine that delay. If your vulnerability management process stops at “package update available,” it is incomplete for kernel flaws. If your reboot policy is ad hoc, your patched kernel may be sitting on disk while the vulnerable one continues to run. If your scanner lacks distribution context, it may either overstate risk on a backported kernel or miss risk on a customized one.
This is where Windows admins may have an advantage in mindset. Microsoft has spent years training enterprises around servicing channels, reboot coordination, and cumulative update discipline. Linux fleets need the same operational seriousness, even though the tooling and vendor ecosystem are more fragmented. Kernel vulnerabilities are not finished until the fleet has converged on a fixed running version.
MPTCP adds one more wrinkle: mitigation by configuration may be possible in some environments if the feature is not needed, but configuration should not become a substitute for patching. Disabling an unused feature can reduce exposure while change windows are arranged. It does not remove the need to take the fixed kernel when your vendor ships it.
The same logic applies to appliances and managed products. If a product embeds Linux and exposes network services, customers should expect the vendor to answer whether CVE-2026-43029 applies. “We use Linux” is no longer enough detail. The meaningful answer is kernel lineage, feature exposure, patch status, and deployment timeline.

The Kernel CVE Machine Is Producing More Noise, But Not Less Signal​

Recent years have seen a noticeable increase in Linux kernel CVE volume, partly because the kernel project and its CNA process have become more systematic about assigning identifiers to fixed bugs. That creates noise for security teams. It also removes a comfortable ambiguity: many kernel defects that once would have been “just a bug fix” now arrive with a CVE ID and a scanner finding.
CVE-2026-43029 fits that newer world. It is a real bug with a plausible availability impact, but it is not necessarily an emergency for every organization. The challenge is to build triage processes that can say both things at once. Security programs that classify every kernel CVE as urgent will burn out. Programs that wave away every non-RCE kernel CVE will eventually learn the wrong lesson during an outage.
The right middle path starts with feature exposure. Is MPTCP enabled? Are affected kernel versions present? Are any Internet-facing or untrusted-client services using paths that could hit this receive behavior? Are vulnerable kernels running on high-value infrastructure where a host-level lockup has outsized blast radius? Those questions are more useful than arguing abstractly about whether 7.5 is “really” high.
There is also value in reading the vulnerability description rather than only the score. Here, the MSG_PEEK | MSG_WAITALL combination is the story. It narrows the mental model from “Linux networking scary” to “specific receive semantics in MPTCP can loop.” That specificity helps defenders prioritize without pretending they can reverse-engineer every patch.
For enthusiasts, the bug is also a window into why kernels remain hard. The APIs are old, the expectations are strict, and the compatibility burden is enormous. New subsystems do not get to invent a cleaner world; they have to coexist with decades of socket behavior that applications may depend on in surprising ways.

The Admin Work Is Concrete, Even If the Exploit Story Is Conditional​

The practical response to CVE-2026-43029 should be calm and mechanical. Identify kernels, check vendor advisories, confirm whether MPTCP is enabled or relevant, deploy fixed packages, and reboot into the patched kernel. That sequence is familiar because most kernel vulnerability response is familiar. The danger is not that administrators do not know what to do; it is that they delay doing it because the bug sounds narrow.
For upstream-style deployments, the affected ranges in the NVD material point to the importance of moving beyond vulnerable 6.18 and 6.19 builds, with fixes landing in stable updates referenced by kernel.org. For enterprise and cloud distributions, administrators should follow the vendor’s kernel package status rather than relying only on the upstream version string. Backports are normal, and version-number literalism can mislead in both directions.
Monitoring also deserves attention. Soft lockups may appear in kernel logs before an incident becomes a full outage. Watchdog messages, unexplained CPU saturation, receive-path stalls, and host unresponsiveness on systems handling unusual network traffic should not be dismissed as random kernel weirdness. In environments experimenting with MPTCP, those signals are worth correlating with kernel version and workload behavior.
Security teams should also update their playbooks for Linux kernel CVEs that hit optional networking features. The first question should not be “Is this Windows?” or “Is this Linux?” It should be “Where in our estate does this code path exist, and who owns the reboot?” In 2026, platform boundaries are administrative conveniences, not reliable security boundaries.

The MSG_PEEK Bug Leaves a Short Checklist Behind​

CVE-2026-43029 is narrow enough to triage, but important enough not to ignore. Its value as a case study is that it turns a socket API corner case into an operations lesson about kernel state, feature exposure, and reboot discipline.
  • Organizations should identify Linux systems running affected upstream kernel lines or vendor kernels that include the vulnerable MPTCP receive code.
  • Administrators should verify whether MPTCP is enabled or exposed on systems that accept traffic from untrusted clients.
  • Kernel updates should be treated as incomplete until the host has rebooted into the fixed kernel or otherwise switched to it through a supported live-patching mechanism.
  • Vulnerability scanners should be checked against distribution advisories, because backported fixes and upstream CPE ranges do not always line up cleanly.
  • Soft lockup messages in kernel logs should be investigated as availability events, not merely as diagnostic noise.
  • Windows-centric teams should include Linux-based appliances, container hosts, CI systems, and WSL-related infrastructure in their exposure review.
CVE-2026-43029 will probably not be remembered as one of the defining vulnerabilities of 2026, and that is fine. Its significance is more practical than dramatic: a modern kernel feature met old socket semantics, syzbot found the seam, and the fix now has to travel the long road from upstream patch to running production systems. The organizations that handle it well will be the ones that treat availability bugs as first-class security work, maintain an honest inventory of the Linux hiding inside their Windows-shaped estates, and remember that a patched kernel on disk is only a promise until the machine is actually running it.

References​

  1. Primary source: NVD / Linux Kernel
    Published: 2026-05-25T01:01:50-07:00
  2. Security advisory: MSRC
    Published: 2026-05-25T01:01:50-07:00
    Original feed URL
  3. Related coverage: spinics.net
  4. Related coverage: cve.imfht.com
 

Back
Top