CVE-2026-31494: net: macb: use the current queue number for stats
In the Linux kernel, the following vulnerability has been resolved:
net: macb: use the current queue number for stats
There's a potential mismatch between the memory reserved for statistics
and the amount of memory written.
gem_get_sset_count() correctly computes the number of stats based on the
active queues, whereas gem_get_ethtool_stats() indiscriminately copies
data using the maximum number of queues, and in the case the number of
active queues is less than MACB_MAX_QUEUES, this results in a OOB write
as observed in the KASAN splat.
==================================================================
BUG: KASAN: vmalloc-out-of-bounds in gem_get_ethtool_stats+0x54/0x78
[macb]
Write of size 760 at addr ffff80008080b000 by task ethtool/1027
CPU: [...]
Tainted: [E]=UNSIGNED_MODULE
Hardware name: raspberrypi rpi/rpi, BIOS 2025.10 10/01/2025
Call trace:
show_stack+0x20/0x38 (C)
dump_stack_lvl+0x80/0xf8
print_report+0x384/0x5e0
kasan_report+0xa0/0xf0
kasan_check_range+0xe8/0x190
__asan_memcpy+0x54/0x98
gem_get_ethtool_stats+0x54/0x78 [macb
926c13f3af83b0c6fe64badb21ec87d5e93fcf65]
dev_ethtool+0x1220/0x38c0
dev_ioctl+0x4ac/0xca8
sock_do_ioctl+0x170/0x1d8
sock_ioctl+0x484/0x5d8
__arm64_sys_ioctl+0x12c/0x1b8
invoke_syscall+0xd4/0x258
el0_svc_common.constprop.0+0xb4/0x240
do_el0_svc+0x48/0x68
el0_svc+0x40/0xf8
el0t_64_sync_handler+0xa0/0xe8
el0t_64_sync+0x1b0/0x1b8
The buggy address belongs to a 1-page vmalloc region starting at
0xffff80008080b000 allocated at dev_ethtool+0x11f0/0x38c0
The buggy address belongs to the physical page:
page: refcount:1 mapcount:0 mapping:0000000000000000
index:0xffff00000a333000 pfn:0xa333
flags: 0x7fffc000000000(node=0|zone=0|lastcpupid=0x1ffff)
raw: 007fffc000000000 0000000000000000 dead000000000122 0000000000000000
raw: ffff00000a333000 0000000000000000 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected
Memory state around the buggy address:
ffff80008080b080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ffff80008080b100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>ffff80008080b180: 00 00 00 00 00 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8
^
ffff80008080b200: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8
ffff80008080b280: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8
==================================================================
Fix it by making sure the copied size only considers the active number of
queues.
Security readout for executives and security teams
Plain-English summary
A flaw in Linux’s MACB/GEM network driver can write beyond an allocated statistics buffer when fewer queues are active than the driver’s maximum. This may corrupt kernel memory. The supplied CVSS rates potential confidentiality, integrity, and availability impact as high, but requires local, low-privileged access.
Executive priority
Treat as an expedited kernel-maintenance issue for systems using the affected driver, especially shared, appliance, or industrial hosts with untrusted local access. It is not evidence of an internet-wide emergency because the supplied assessment requires local access and reports no active exploitation.
Technical view
gem_get_sset_count() allocates statistics space using active queues, while gem_get_ethtool_stats() previously copied statistics for MACB_MAX_QUEUES. The mismatch causes a vmalloc out-of-bounds write during Ethernet statistics retrieval. The kernel fix limits copying to the current active queue count.
Likely exposure
Exposure is limited to Linux systems using the MACB/GEM network driver where active queues are fewer than MACB_MAX_QUEUES. The supplied version data is ambiguous and includes commit identifiers, so inventory should rely on distributor advisories and presence of the referenced stable fix.
Exploitation context
The CVSS vector describes local attack access, low complexity, low privileges, and no user interaction. The supplied record reports a KASAN-detected out-of-bounds write. It does not establish practical exploitation, public weaponization, or active exploitation, and the CVE is not listed as KEV in the bundle.
Researcher notes
The evidence demonstrates a size-accounting mismatch and KASAN-observed vmalloc out-of-bounds write of 760 bytes in gem_get_ethtool_stats(). Impact beyond memory corruption is inferred by the CVSS assessment, not demonstrated in the supplied description. Exact vulnerable release boundaries remain unclear from the provided version entries.
Mitigation direction
Install a vendor-supported kernel containing the applicable referenced stable fix.
Check Linux distributor and appliance-vendor advisories for exact affected and corrected releases.
Prioritize systems exposing local access to untrusted or minimally privileged users.
Restrict unnecessary local accounts until affected systems are updated.
Validation and detection
Inventory systems using the MACB/GEM network driver.
Record kernel and vendor package versions on potentially affected systems.
Confirm the applicable stable fix is included or backported by the vendor.
Review kernel logs for MACB-related KASAN or memory-corruption reports after statistics access.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2026-31494 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
1ADP providers
11Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.