Skip to content
Heist/ feed
Unrated

netlink: do not free nlk->groups while lockless readers can use it

Type: advisorySource: Official CVE List1 source record

In the Linux kernel, the following vulnerability has been resolved: netlink: do not free nlk->groups while lockless readers can use it netlink_realloc_groups() uses krealloc() under netlink_table_grab(). Whenever NLGRPSZ(groups) lands in a different kmalloc bucket, the old bitmap is freed immediately. Two readers of nlk->groups / nlk->ngroups do not hold the netlink table lock: 1) sk_diag_dump_groups(). Hashed (bound) sockets are dumped from the rhashtable walk in __netlink_diag_dump(), which only holds RCU. Only the mc_list part of the dump takes nl_table_lock. 2) netlink_native_seq_show() (/proc/net/netlink), whose walk has been lockless since commit 21e4902aea80 ("netlink: Lockless lookup with RCU grace period in socket release"). Both can read a freed buffer, and sk_diag_dump_groups() can also read past the end of the old (smaller) buffer if it happens to load the old @groups pointer together with the new @ngroups value, copying the result into a NETLINK_DIAG_GROUPS attribute. This is the same class of bug that commit f773608026ee ("netlink: access nlk groups safely in netlink bind and getname") fixed for bind() and getname(); these two readers were missed. Simply grabbing the table lock in sk_diag_dump_groups() is not an option, because it is also called with nl_table_lock already held from the mc_list section of the dump. Make the lockless readers safe instead: - Allocate a new bitmap and free the old one after an RCU grace period, instead of relying on the implicit kfr

Announced Group revision 1
Original source ↗

CVE-2026-98284

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: cve:CVE-2026-98284

Linux

Source reference: /containers/cna/affected/0/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Linux

Source reference: /containers/cna/affected/1/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "21e4902aea80ef35afc00ee8d2abdea4f519b7f7",
        "lessThan": "22f313e211d58a66786c81487c3905fa5d4b2a8f",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "21e4902aea80ef35afc00ee8d2abdea4f519b7f7",
        "lessThan": "ceac0de741bfb47ca255eee075257b3bb31f0651",
        "versionType": "git"
      }
    ],
    "programFiles": [
      "net/netlink/af_netlink.c",
      "net/netlink/diag.c"
    ],
    "defaultStatus": "unaffected"
  },
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "4.0"
      },
      {
        "status": "unaffected",
        "version": "0",
        "lessThan": "4.0",
        "versionType": "semver"
      },
      {
        "status": "unaffected",
        "version": "7.2.8",
        "versionType": "semver",
        "lessThanOrEqual": "7.2.*"
      },
      {
        "status": "unaffected",
        "version": "7.3",
        "versionType": "original_commit_for_fix",
        "lessThanOrEqual": "*"
      }
    ],
    "programFiles": [
      "net/netlink/af_netlink.c",
      "net/netlink/diag.c"
    ],
    "defaultStatus": "affected"
  }
]
Related CVEs
CVE-2026-98284

Source reference: /cveMetadata/cveId

Publisher severity

No explicit severity was provided.

Event
#38362 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement