CVE-2023-53000

Summary

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

netlink: prevent potential spectre v1 gadgets

Most netlink attributes are parsed and validated from __nla_validate_parse() or validate_nla()

u16 type = nla_type(nla);

if (type == 0 || type > maxtype) {
    /* error or continue */
}

@type is then used as an array index and can be used as a Spectre v1 gadget.

array_index_nospec() can be used to prevent leaking content of kernel memory to malicious users.

This should take care of vast majority of netlink uses, but an audit is needed to take care of others where validation is not yet centralized in core netlink functions.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxbfa83a9e03cf8d501c6272999843470afecb32ed < 3e5082b1c66c7783fbcd79b5b178573230e528ffaffected
LinuxLinuxbfa83a9e03cf8d501c6272999843470afecb32ed < 539ca5dcbc91134bbe2c45677811c31d8b030d2daffected
LinuxLinuxbfa83a9e03cf8d501c6272999843470afecb32ed < 41b74e95f297ac360ca7ed6bf200100717cb6c45affected
LinuxLinuxbfa83a9e03cf8d501c6272999843470afecb32ed < 992e4ff7116a77968039277b5d6aaa535c2f2184affected
LinuxLinuxbfa83a9e03cf8d501c6272999843470afecb32ed < f0950402e8c76e7dcb08563f1b4e8000fbc62455affected
LinuxLinux2.6.15affected
LinuxLinux0 < 2.6.15unaffected
LinuxLinux5.4.231 <= 5.4.*unaffected
LinuxLinux5.10.166 <= 5.10.*unaffected
LinuxLinux5.15.91 <= 5.15.*unaffected
LinuxLinux6.1.9 <= 6.1.*unaffected
LinuxLinux6.2 <= *unaffected

Weaknesses

References