Aller au contenu
Non notée

CVE-2026-46132 In the Linux kernel, the following vulnerability has been resolved: net: rtnetlink: zero ifla_vf_broadcast to avoid…

Description

In the Linux kernel, the following vulnerability has been resolved: net: rtnetlink: zero ifla_vf_broadcast to avoid stack infoleak in rtnl_fill_vfinfo rtnl_fill_vfinfo() declares struct ifla_vf_broadcast on the stack without initialisation: struct ifla_vf_broadcast vf_broadcast; The struct contains a single fixed 32-byte field: /* include/uapi/linux/if_link.h */ struct ifla_vf_broadcast { __u8 broadcast[32]; }; The function then copies dev->broadcast into it using dev->addr_len as the length: memcpy(vf_broadcast.broadcast, dev->broadcast, dev->addr_len); On Ethernet devices (the overwhelming majority of SR-IOV NICs) dev->addr_len is 6, so only the first 6 bytes of broadcast[] are written. The remaining 26 bytes retain whatever was previously on the kernel stack. The full struct is then handed to userspace via: nla_put(skb, IFLA_VF_BROADCAST, sizeof(vf_broadcast), &vf_broadcast) leaking up to 26 bytes of uninitialised kernel stack per VF per RTM_GETLINK request, repeatable. The other vf_* structs in the same function are explicitly zeroed for exactly this reason - see the memset() calls for ivi, vf_vlan_info, node_guid and port_guid a few lines above. vf_broadcast was simply missed when it was added. Reachability: any unprivileged local process can open AF_NETLINK / NETLINK_ROUTE without capabilities and send RTM_GETLINK with an IFLA_EXT_MASK attribute carrying RTEXT_FILTER_VF. The kernel walks each VF and emits IFLA_VF_BROADCAST, leaking 26 bytes of stack per VF per request. Stack residue at this call site can include return addresses and transient sensitive data; KASAN with stack instrumentation, or KMSAN, will flag the nla_put() when reproduced. Zero the on-stack struct before the partial memcpy, matching the existing pattern used for the other vf_* structs in the same function.

Produits et versions touchés

Produit Versions touchées Corrigé en
Linux 7.1 premières → < 7.1 7.1
Linux 7.0 premières → < 7.0.7 7.0.7
Linux 6.18 premières → < 6.18.30 6.18.30
Linux 6.12 premières → < 6.12.88 6.12.88
Linux 6.6 premières → < 6.6.140 6.6.140
Linux 6.1 premières → < 6.1.175 6.1.175
Linux 5.15 premières → < 5.15.209 5.15.209
Linux 5.10 premières → < 5.10.258 5.10.258
Linux 5.3 Pas de correctif indiqué
Afficher les 3 autres branches
Produit Versions touchées Corrigé en
SIMATIC S7-1500 CPU 1518-4 PN/DP MFP 3.1 3.1.7 → dernières Pas de correctif indiqué
SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP 3.1 3.1.7 → dernières Pas de correctif indiqué
SIPLUS S7-1500 CPU 1518-4 PN/DP MFP 3.1 3.1.7 → dernières Pas de correctif indiqué

Références

Chronologie

  1. Publiée
  2. Dernière modification
Les 18283 CVE de Linux →
Suivre cette CVE