Description
In the Linux kernel, the following vulnerability has been resolved: net/mlx5: Fix MCIA register buffer overflow on 32 dword reads The MCIA register can return up to 32 dwords (128 bytes) when the device advertises the mcia_32dwords capability, but struct mlx5_ifc_mcia_reg_bits only defines dword_0..11, leaving room for just 12 dwords (48 bytes) of data. mlx5_query_mcia() clamps the read size to mlx5_mcia_max_bytes() and then memcpy()s that many bytes out of the register, potentially reading past the end of the 'out' buffer. On kernels built with FORTIFY_SOURCE this is caught as a buffer overflow while reading the module EEPROM via ethtool: detected buffer overflow in memcpy kernel BUG at lib/string_helpers.c:1048! RIP: 0010:fortify_panic+0x13/0x20 Call Trace: mlx5_query_mcia.isra.0+0x200/0x210 [mlx5_core] mlx5_query_module_eeprom_by_page+0x4a/0xa0 [mlx5_core] mlx5e_get_module_eeprom_by_page+0xbb/0x120 [mlx5_core] eeprom_prepare_data+0xf3/0x170 ethnl_default_doit+0xf1/0x3b0 Extend the mcia_reg layout to 32 dwords.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
271907ee2f29cd1078fd219f0778fd824fb1971c to < c8a4acc19dcdc83e1303c29d9535e5c99415a2e3affected271907ee2f29cd1078fd219f0778fd824fb1971c to < 5be4eebd5a3a198dab0adcd550e1cadca79bdfedaffected271907ee2f29cd1078fd219f0778fd824fb1971c to < 87b39a8c875ca744b7de69af0a8ef8874cffccf1affected271907ee2f29cd1078fd219f0778fd824fb1971c to < 88b2a16ddac3357e3f1d528e758b51e2c945d546affected271907ee2f29cd1078fd219f0778fd824fb1971c to < 11c057d23465c7a5817a7284c896d19d54c0b616affected
Linux Linux
Default version status: affected
5.18affected0 to < 5.18unaffected6.6.160 to ≤ 6.6.*unaffected6.12.101 to ≤ 6.12.*unaffected6.18.42 to ≤ 6.18.*unaffected7.1.6 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/c8a4acc19dcdc83e1303c29d9535e5c99415a2e3 ↗
- https://git.kernel.org/stable/c/5be4eebd5a3a198dab0adcd550e1cadca79bdfed ↗
- https://git.kernel.org/stable/c/87b39a8c875ca744b7de69af0a8ef8874cffccf1 ↗
- https://git.kernel.org/stable/c/88b2a16ddac3357e3f1d528e758b51e2c945d546 ↗
- https://git.kernel.org/stable/c/11c057d23465c7a5817a7284c896d19d54c0b616 ↗