CVE-2025-21920

In the Linux kernel, the following vulnerability has been resolved: vlan: enforce underlying device type Currently, VLAN devices can be created on top of non-ethernet devices. Besides the fact that it doesn't make much sense, this also causes a bug which leaks the address of a kernel function to usermode. When creating a VLAN device, we initialize GARP (garp_init_applicant) and MRP (mrp_init_applicant) for the underlying device. As part of the initialization process, we add the multicast address of each applicant to the underlying device, by calling dev_mc_add. __dev_mc_add uses dev->addr_len to determine the length of the new multicast address. This causes an out-of-bounds read if dev->addr_len is greater than 6, since the multicast addresses provided by GARP and MRP are only 6 bytes long. This behaviour can be reproduced using the following commands: ip tunnel add gretest mode ip6gre local ::1 remote ::2 dev lo ip l set up dev gretest ip link add link gretest name vlantest type vlan id 100 Then, the following command will display the address of garp_pdu_rcv: ip maddr show | grep 01:80:c2:00:00:21 Fix the bug by enforcing the type of the underlying device during VLAN device initialization.
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:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc5:*:*:*:*:*:*

History

11 Apr 2025, 13:13

Type Values Removed Values Added
CWE CWE-125
First Time Linux linux Kernel
Linux
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 7.1
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: vlan: imponer el tipo de dispositivo subyacente Actualmente, los dispositivos VLAN se pueden crear sobre dispositivos que no sean Ethernet. Además del hecho de que no tiene mucho sentido, esto también causa un error que filtra la dirección de una función del kernel al modo de usuario. Al crear un dispositivo VLAN, inicializamos GARP (garp_init_applicant) y MRP (mrp_init_applicant) para el dispositivo subyacente. Como parte del proceso de inicialización, agregamos la dirección de multidifusión de cada solicitante al dispositivo subyacente, llamando a dev_mc_add. __dev_mc_add usa dev->addr_len para determinar la longitud de la nueva dirección de multidifusión. Esto causa una lectura fuera de los límites si dev->addr_len es mayor que 6, ya que las direcciones de multidifusión proporcionadas por GARP y MRP solo tienen 6 bytes de longitud. Este comportamiento se puede reproducir utilizando los siguientes comandos: ip tunnel add gretest mode ip6gre local ::1 remote ::2 dev lo ip l set up dev gretest ip link add link gretest name vlantest type vlan id 100 Luego, el siguiente comando mostrará la dirección de garp_pdu_rcv: ip maddr show | grep 01:80:c2:00:00:21 Corrija el error aplicando el tipo de dispositivo subyacente durante la inicialización del dispositivo VLAN.
CPE cpe:2.3:o:linux:linux_kernel:6.14:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc3:*:*:*:*:*:*
References () https://git.kernel.org/stable/c/0fb7aa04c19eac4417f360a9f7611a60637bdacc - () https://git.kernel.org/stable/c/0fb7aa04c19eac4417f360a9f7611a60637bdacc - Patch
References () https://git.kernel.org/stable/c/30e8aee77899173a82ae5ed89f536c096f20aaeb - () https://git.kernel.org/stable/c/30e8aee77899173a82ae5ed89f536c096f20aaeb - Patch
References () https://git.kernel.org/stable/c/3561442599804905c3defca241787cd4546e99a7 - () https://git.kernel.org/stable/c/3561442599804905c3defca241787cd4546e99a7 - Patch
References () https://git.kernel.org/stable/c/5a515d13e15536e82c5c7c83eb6cf5bc4827fee5 - () https://git.kernel.org/stable/c/5a515d13e15536e82c5c7c83eb6cf5bc4827fee5 - Patch
References () https://git.kernel.org/stable/c/7f1564b2b2072b7aa1ac75350e9560a07c7a44fd - () https://git.kernel.org/stable/c/7f1564b2b2072b7aa1ac75350e9560a07c7a44fd - Patch
References () https://git.kernel.org/stable/c/b33a534610067ade2bdaf2052900aaad99701353 - () https://git.kernel.org/stable/c/b33a534610067ade2bdaf2052900aaad99701353 - Patch
References () https://git.kernel.org/stable/c/b6c72479748b7ea09f53ed64b223cee6463dc278 - () https://git.kernel.org/stable/c/b6c72479748b7ea09f53ed64b223cee6463dc278 - Patch
References () https://git.kernel.org/stable/c/fa40ebef69234e39ec2d26930d045f2fb9a8cb2b - () https://git.kernel.org/stable/c/fa40ebef69234e39ec2d26930d045f2fb9a8cb2b - Patch

01 Apr 2025, 16:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-04-01 16:15

Updated : 2025-04-11 13:13


NVD link : CVE-2025-21920

Mitre link : CVE-2025-21920

CVE.ORG link : CVE-2025-21920


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-125

Out-of-bounds Read