CVE-2025-37787

In the Linux kernel, the following vulnerability has been resolved: net: dsa: mv88e6xxx: avoid unregistering devlink regions which were never registered Russell King reports that a system with mv88e6xxx dereferences a NULL pointer when unbinding this driver: https://lore.kernel.org/netdev/Z_lRkMlTJ1KQ0kVX@shell.armlinux.org.uk/ The crash seems to be in devlink_region_destroy(), which is not NULL tolerant but is given a NULL devlink global region pointer. At least on some chips, some devlink regions are conditionally registered since the blamed commit, see mv88e6xxx_setup_devlink_regions_global(): if (cond && !cond(chip)) continue; These are MV88E6XXX_REGION_STU and MV88E6XXX_REGION_PVT. If the chip does not have an STU or PVT, it should crash like this. To fix the issue, avoid unregistering those regions which are NULL, i.e. were skipped at mv88e6xxx_setup_devlink_regions_global() time.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.15:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.15:rc2:*:*:*:*:*:*

History

31 Oct 2025, 20:03

Type Values Removed Values Added
First Time Linux linux Kernel
Linux
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
CWE CWE-476
CPE cpe:2.3:o:linux:linux_kernel:6.15:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.15:rc2:*:*:*:*:*:*
References () https://git.kernel.org/stable/c/3665695e3572239dc233216f06b41f40cc771889 - () https://git.kernel.org/stable/c/3665695e3572239dc233216f06b41f40cc771889 - Patch
References () https://git.kernel.org/stable/c/5f5e95945bb1e08be7655da6acba648274db457d - () https://git.kernel.org/stable/c/5f5e95945bb1e08be7655da6acba648274db457d - Patch
References () https://git.kernel.org/stable/c/8ccdf5e24b276848eefb2755e05ff0f005a0c4a1 - () https://git.kernel.org/stable/c/8ccdf5e24b276848eefb2755e05ff0f005a0c4a1 - Patch
References () https://git.kernel.org/stable/c/b3c70dfe51f10df60db2646c08cebd24bcdc5247 - () https://git.kernel.org/stable/c/b3c70dfe51f10df60db2646c08cebd24bcdc5247 - Patch
References () https://git.kernel.org/stable/c/bbb80f004f7a90c3dcaacc982c59967457254a05 - () https://git.kernel.org/stable/c/bbb80f004f7a90c3dcaacc982c59967457254a05 - Patch
References () https://git.kernel.org/stable/c/c84f6ce918a9e6f4996597cbc62536bbf2247c96 - () https://git.kernel.org/stable/c/c84f6ce918a9e6f4996597cbc62536bbf2247c96 - Patch

02 May 2025, 13:53

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: net: dsa: mv88e6xxx: evitar anular el registro de regiones devlink que nunca se registraron Russell King informa que un sistema con mv88e6xxx desreferencia un puntero NULL al desvincular este controlador: https://lore.kernel.org/netdev/Z_lRkMlTJ1KQ0kVX@shell.armlinux.org.uk/ El fallo parece estar en devlink_region_destroy(), que no tolera NULL pero se le asigna un puntero de región global devlink NULL. Al menos en algunos chips, algunas regiones devlink se registran condicionalmente desde la confirmación culpable, consulte mv88e6xxx_setup_devlink_regions_global(): if (cond && !cond(chip)) continue; Estos son MV88E6XXX_REGION_STU y MV88E6XXX_REGION_PVT. Si el chip no tiene una STU o PVT, debería fallar de esta manera. Para solucionar el problema, evite anular el registro de las regiones nulas, es decir, las que se omitieron al ejecutar mv88e6xxx_setup_devlink_regions_global().

02 May 2025, 07:16

Type Values Removed Values Added
References
  • () https://git.kernel.org/stable/c/8ccdf5e24b276848eefb2755e05ff0f005a0c4a1 -

01 May 2025, 14:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-05-01 14:15

Updated : 2025-10-31 20:03


NVD link : CVE-2025-37787

Mitre link : CVE-2025-37787

CVE.ORG link : CVE-2025-37787


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-476

NULL Pointer Dereference