# CVE-2026-68368: usb: gadget: f_ncm: validate datagram bounds in ncm_unwrap_ntb()

> A malicious USB host can trigger out-of-bounds memory reads in the Linux kernel NCM gadget driver, potentially leaking kernel memory or executing code.

- **Severity:** Not scored
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Local or same network only
- **Victim action needed:** A user has to click or open something
- **Fix available:** Yes
- **Published:** 10 Aug 2026
- **Updated:** 19 Aug 2026
- **Also known as:** BELL-CVE-2026-68368, DEBIAN-CVE-2026-68368, GHSA-jmw8-f562-3f2g, UBUNTU-CVE-2026-68368

## What is CVE-2026-68368?

CVE-2026-68368 is a memory corruption vulnerability in Linux, published on 10 Aug 2026. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link.

### Official description

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

usb: gadget: f_ncm: validate datagram bounds in ncm_unwrap_ntb()

When unpacking host-supplied NTBs, ncm_unwrap_ntb() checks datagram length
against frame_max but does not verify that the datagram fits within the
declared block length. Additionally, when decoding multiple NTBs from a
single socket buffer, subsequent block lengths are not checked against the
actual remaining buffer data.

With these checks missing, a malicious USB host can specify datagram
offsets and lengths that point beyond the block, or supply secondary NTB
headers declaring lengths larger than the buffer. skb_put_data() then
copies adjacent kernel memory from skb_shared_info into the network skb.

Fix this by verifying that sufficient buffer space remains for the NTB
header before parsing, handling zero-length block declarations, ensuring
that block lengths never exceed the remaining buffer space, and verifying
that each datagram payload stays strictly within the block boundary.

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


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

Apply the vendor's patch.

## Is CVE-2026-68368 being exploited?

There is no known exploitation of CVE-2026-68368 in the wild and no public exploit code.

## Fix prompt for AI coding agents

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

What it is: CVE-2026-68368 is a memory corruption vulnerability in Linux, published on 10 Aug 2026. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link.
Exploitation: There is no known exploitation of CVE-2026-68368 in the wild and no public exploit code.

Affected product: Linux. 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-68368/ (Markdown: https://insights.sbomify.com/CVE-2026-68368/index.md)
```

## Sources

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

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