# CVE-2026-53365: vsock/virtio: fix zerocopy completion for multi-skb sends

> A flaw in Linux kernel vsock/virtio zerocopy handling leaks pinned pages, potentially causing memory exhaustion and denial of service.

- **Severity:** High 7.8 (`CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H`)
- **Exploited in the wild:** Not known
- **Login needed:** Any signed-in user
- **Attackable:** Local or same network only
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 13 Jul 2026
- **Updated:** 18 Aug 2026
- **Also known as:** BELL-CVE-2026-53365, DEBIAN-CVE-2026-53365, GHSA-9p63-4jq7-2c9w, ROOT-OS-DEBIAN-13-CVE-2026-53365, ROOT-OS-UBUNTU-2404-CVE-2026-53365, UBUNTU-CVE-2026-53365

## What is CVE-2026-53365?

CVE-2026-53365 is a high-severity denial of service vulnerability in Linux kernel, published on 13 Jul 2026. It can only be exploited from the same machine or local network, with no action from the victim.

### Official description

In the Linux kernel, the following vulnerability has been resolved:

vsock/virtio: fix zerocopy completion for multi-skb sends

When a large message is fragmented into multiple skbs, the zerocopy
uarg is only allocated and attached to the last skb in the loop.
Non-final skbs carry pinned user pages with no completion tracking,
so the kernel has no way to notify userspace when those pages are safe
to reuse. If the loop breaks early the uarg is never allocated at all,
leaking pinned pages with no completion notification.

Fix this by following the approach used by TCP: allocate the zerocopy
uarg (if not provided by the caller) before the send loop and attach
it to every skb via skb_zcopy_set(), which takes a reference per skb.
Each skb's completion properly decrements the refcount, and the
notification only fires after the last skb is freed.
On failure, if no data was sent, the uarg is cleanly aborted via
net_zcopy_put_abort().

This issue was initially discovered by sashiko while reviewing commit
1cb36e252211 ("vsock/virtio: fix MSG_ZEROCOPY pinned-pages accounting")
but was pre-existing.

Weakness: CWE-401 (Missing Release of Memory after Effective Lifetime), CWE-404 (Improper Resource Shutdown or Release)

## Which versions are affected by CVE-2026-53365?

It affects 1 product.


Products: Linux kernel.

## How do I fix CVE-2026-53365?

Apply the vendor's patch.

## Is CVE-2026-53365 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-53365 exists.

Public exploit code:

- VsockDrop (CVE-2026-53365) Linux kernel io_uring zerocopy vsock LPE exploit mirror — MaherAzzouzi, MIT; for authorized security testing (github_poc): https://github.com/HackSpeak/CVE-2026-53365
- CVE-2026-53365 (github_poc): https://github.com/HORKimhab/CVE-2026-53365
- A slightly more robust version of MaherAzzouzi's POC, created by my agent on the fly during testing.  (github_poc): https://github.com/hoodoer/VsockDrop-Adapted-CVE-2026-53365

## Other vulnerabilities in Linux kernel

- [CVE-2026-53266](https://insights.sbomify.com/CVE-2026-53266/): Linux Kernel Out-of-Bounds Write (high 8.8, exploited in the wild)
- [CVE-2013-6282](https://insights.sbomify.com/CVE-2013-6282/): Linux Kernel Improper Input Validation (high 8.8, exploited in the wild)
- [CVE-2022-0185](https://insights.sbomify.com/CVE-2022-0185/): Linux Kernel Heap-Based Buffer Overflow (high 8.4, exploited in the wild)
- [CVE-2013-2094](https://insights.sbomify.com/CVE-2013-2094/): Linux Kernel Privilege Escalation (high 8.4, exploited in the wild)
- [CVE-2026-53362](https://insights.sbomify.com/CVE-2026-53362/): Linux Kernel Unspecified (high 7.8, exploited in the wild)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-53365 and fix it if it is affected.

What it is: CVE-2026-53365 is a high-severity denial of service vulnerability in Linux kernel, published on 13 Jul 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Exploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-53365 exists.

Affected product: Linux kernel. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-53365/ (Markdown: https://insights.sbomify.com/CVE-2026-53365/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-53365
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-53365
- OSV: https://osv.dev/vulnerability/CVE-2026-53365

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-53365/
Summaries are generated and may contain mistakes; the official description above is the record.
