{"id":"CVE-2026-98284","title":"In the Linux kernel, the following vulnerability has been resolved:\n\nnetlink: do not free nlk->groups while lockless readers can use it\n\nnetlink_realloc_groups() uses krealloc() under netlink_table_grab().\nWhenever NLGRPSZ(groups) lands …","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nnetlink: do not free nlk->groups while lockless readers can use it\n\nnetlink_realloc_groups() uses krealloc() under netlink_table_grab().\nWhenever NLGRPSZ(groups) lands …","severity":"high","vendor":"Linux","product":"Linux","affected":["Linux >= 21e4902aea80ef35afc00ee8d2abdea4f519b7f7 < 22f313e211d58a66786c81487c3905fa5d4b2a8f","Linux >= 21e4902aea80ef35afc00ee8d2abdea4f519b7f7 < ceac0de741bfb47ca255eee075257b3bb31f0651","Linux 4.0"],"published":"2026-10-06","updated":"2026-10-06","sourceUpdated":"2026-10-06T09:18:18.480","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-98284","references":[{"url":"https://git.kernel.org/stable/c/22f313e211d58a66786c81487c3905fa5d4b2a8f","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/ceac0de741bfb47ca255eee075257b3bb31f0651","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-98284.json"},{"url":"https://access.redhat.com/security/cve/CVE-2026-98284"},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2546475"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-98284"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98284"},{"url":"https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2026/CVE-2026-98284.mbox"}],"tags":["nvd","cve.org","csaf","vex","red-hat"],"ingestedAt":"2026-10-06T08:50:17.420Z","cvss":7,"cvssVector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","cvssSource":"vendor","cwe":["CWE-825"],"epss":0.00155,"epssPercentile":0.04618,"slug":"CVE-2026-98284","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nnetlink: do not free nlk->groups while lockless readers can use it\n\nnetlink_realloc_groups() uses krealloc() under netlink_table_grab().\nWhenever NLGRPSZ(groups) lands in a different kmalloc bucket, the old\nbitmap is freed immediately.\n\nTwo readers of nlk->groups / nlk->ngroups do not hold the netlink\ntable lock:\n\n1) sk_diag_dump_groups(). Hashed (bound) sockets are dumped from the\n   rhashtable walk in __netlink_diag_dump(), which only holds RCU.\n   Only the mc_list part of the dump takes nl_table_lock.\n\n2) netlink_native_seq_show() (/proc/net/netlink), whose walk has been\n   lockless since commit 21e4902aea80 (\"netlink: Lockless lookup with\n   RCU grace period in socket release\").\n\nBoth can read a freed buffer, and sk_diag_dump_groups() can also read\npast the end of the old (smaller) buffer if it happens to load the old\n@groups pointer together with the new @ngroups value, copying the\nresult into a NETLINK_DIAG_GROUPS attribute.\n\nThis is the same class of bug that commit f773608026ee (\"netlink:\naccess nlk groups safely in netlink bind and getname\") fixed for bind()\nand getname(); these two readers were missed. Simply grabbing the table\nlock in sk_diag_dump_groups() is not an option, because it is also\ncalled with nl_table_lock already held from the mc_list section of the\ndump.\n\nMake the lockless readers safe instead:\n\n- Allocate a new bitmap and free the old one after an RCU grace period,\n  instead of relying on the implicit kfree() done by krealloc().\n\n- Publish @groups before @ngroups, both with release semantics, and have\n  the lockless readers load @ngroups first. A reader can then never pair\n  the new (bigger) size with the old (smaller) buffer, and a reader\n  picking up the new pointer while still seeing the old size is\n  guaranteed to see the initialized bitmap.\n\nnetlink_realloc_groups() is called from process context (bind() and\nsetsockopt()), so kfree_rcu_mightsleep() can be used, once the table\nhas been released.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Vendor advisories\n\n- **Red Hat VEX** · Moderate · affected: Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 6, Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 8, Red Hat Enterprise Linux 9, Red Hat OpenShift Container Platform 4 · no fix planned: Red Hat Enterprise Linux 6, Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 8, … · updated 2026-10-10 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-98284.json)","depth":"twilight","depthScore":39,"depthScoreParts":{"impact":38.5,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[{"seq":219069,"id":"CVE-2026-98284","ts":1791707049725,"field":"cvss","old":null,"new":"7"},{"seq":219068,"id":"CVE-2026-98284","ts":1791707049725,"field":"severity","old":"none","new":"high"}]}