# CVE-2026-98929: macsec: initialize SecY before registering the netdevice


- **Severity:** Not scored
- **Exploited in the wild:** Not known
- **Fix available:** Yes
- **Published:** 23 Oct 2026
- **Updated:** 23 Oct 2026
- **Also known as:** AZL-110708, BELL-CVE-2026-98929, DEBIAN-CVE-2026-98929, GHSA-83cv-x2cm-qpmg, UBUNTU-CVE-2026-98929

## What is CVE-2026-98929?

CVE-2026-98929 is a vulnerability in Linux, published on 23 Oct 2026. 

### Official description

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

macsec: initialize SecY before registering the netdevice

Creating a MACsec device with MAC offload over an LRO-capable lower
device triggers a warning in rtmsg_ifinfo_build_skb() when IPv4
forwarding is enabled by default.

register_netdevice() invokes inetdev_init(), which disables LRO and emits
a NETDEV_FEAT_CHANGE notification. This reaches macsec_fill_info() before
macsec_add_dev() initializes the SecY. key_len is still zero, so
macsec_fill_info() returns -EMSGSIZE and trips the WARN_ON in
rtmsg_ifinfo_build_skb(), even though the skb has enough space.

Even without the warning, notifications during registration can report
uninitialized SecY attributes, including the SCI. This ordering has existed
since the driver was introduced.

Initialize the SecY and apply the new-link attributes before registration.
Move MAC address inheritance into macsec_newlink() so the SCI can also be
initialized before registration-time notifications report it. Move the
per-CPU statistics and metadata destination allocation into ndo_init(),
and release partial allocations on failure.

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


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

Upgrade to a fixed version.

## Is CVE-2026-98929 being exploited?

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

## Fix prompt for AI coding agents

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

What it is: CVE-2026-98929 is a vulnerability in Linux, published on 23 Oct 2026. 
Exploitation: There is no known exploitation of CVE-2026-98929 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-98929/ (Markdown: https://insights.sbomify.com/CVE-2026-98929/index.md)
```

## Sources

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

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