# CVE-2026-64531: net: openvswitch: reject oversized nested action attrs

> An integer overflow in Open vSwitch allows attackers to corrupt memory, potentially leading to code execution or system crashes.

- **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:** 27 Jul 2026
- **Updated:** 19 Oct 2026
- **Also known as:** AZL-93965, BELL-CVE-2026-64531, DEBIAN-CVE-2026-64531, GHSA-4pwv-pmm4-fw4r, ROOT-OS-DEBIAN-12-CVE-2026-64531, UBUNTU-CVE-2026-64531, USN-8659-1, USN-8659-2, USN-8659-3, USN-8659-4

## What is CVE-2026-64531?

CVE-2026-64531 is a high-severity vulnerability in Linux, published on 27 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:

net: openvswitch: reject oversized nested action attrs

Open vSwitch stores generated flow actions as nlattrs, whose nla_len
field is u16. Commit a1e64addf3ff ("net: openvswitch: remove
misbehaving actions length check") allowed the total sw_flow_actions
stream to grow beyond 64 KiB, which is valid, but also removed the last
guard preventing a generated nested action attribute from exceeding
U16_MAX.

An oversized generated container can thus be closed with a truncated
nla_len. A later dump or teardown then walks a structurally different
stream than the one that was validated. In particular, an oversized
nested CLONE/CT action may cause subsequent bytes in the generated
stream to be interpreted as independent actions.

Keep the larger total-action-stream behavior, but make nested action
close reject generated containers that do not fit in nla_len, and return
the error through all callers. For recursive SAMPLE, CLONE, DEC_TTL, and
CHECK_PKT_LEN builders, trim resource-owning action-list tails in reverse
construction order before discarding failed wrappers, so resources copied
into the rejected tails are released before the wrappers are removed.

Most failed outer wrappers are discarded by truncating actions_len after
child resources have been released. CHECK_PKT_LEN also trims its parent
after branch resources are gone. SET/TUNNEL close failures unwind their
known tun_dst ownership directly, and SET_TO_MASKED has no external
ownership and truncates on close failure.

Weakness: CWE-190 (Integer Overflow or Wraparound)

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


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

Apply the vendor's patch.

## Is CVE-2026-64531 being exploited?

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

Public exploit code:

- CVE-2026-64531 (OVSwrap) PoC - Linux kernel Open vSwitch LPE; for patch validation and security research (github_poc): https://github.com/HackSpeak/CVE-2026-64531
- https://github.com/mahfuzreham/OVSwrap-CVE-2026-64531-Mitigation-Tool (github_poc): https://github.com/mahfuzreham/OVSwrap-CVE-2026-64531-Mitigation-Tool
- CVE-2026-64531 (github_poc): https://github.com/0xredash/CVE-2026-64531
- Tracking OVSwrap (CVE-2026-64531), the Open vSwitch datapath netlink overflow (github_poc): https://github.com/suominen/ovswrap

## Fix prompt for AI coding agents

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

What it is: CVE-2026-64531 is a high-severity vulnerability in Linux, published on 27 Jul 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2026-64531 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-64531/ (Markdown: https://insights.sbomify.com/CVE-2026-64531/index.md)
```

## Sources

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

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