CVE-2024-41066

In the Linux kernel, the following vulnerability has been resolved: ibmvnic: Add tx check to prevent skb leak Below is a summary of how the driver stores a reference to an skb during transmit: tx_buff[free_map[consumer_index]]->skb = new_skb; free_map[consumer_index] = IBMVNIC_INVALID_MAP; consumer_index ++; Where variable data looks like this: free_map == [4, IBMVNIC_INVALID_MAP, IBMVNIC_INVALID_MAP, 0, 3] consumer_index^ tx_buff == [skb=null, skb=<ptr>, skb=<ptr>, skb=null, skb=null] The driver has checks to ensure that free_map[consumer_index] pointed to a valid index but there was no check to ensure that this index pointed to an unused/null skb address. So, if, by some chance, our free_map and tx_buff lists become out of sync then we were previously risking an skb memory leak. This could then cause tcp congestion control to stop sending packets, eventually leading to ETIMEDOUT. Therefore, add a conditional to ensure that the skb address is null. If not then warn the user (because this is still a bug that should be patched) and free the old pointer to prevent memleak/tcp problems.
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:6.10:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc5:*:*:*:*:*:*

History

21 Nov 2024, 09:32

Type Values Removed Values Added
References () https://git.kernel.org/stable/c/0983d288caf984de0202c66641577b739caad561 - Patch () https://git.kernel.org/stable/c/0983d288caf984de0202c66641577b739caad561 - Patch
References () https://git.kernel.org/stable/c/16ad1557cae582e79bb82dddd612d9bdfaa11d4c - Patch () https://git.kernel.org/stable/c/16ad1557cae582e79bb82dddd612d9bdfaa11d4c - Patch
References () https://git.kernel.org/stable/c/267c61c4afed0ff9a2e83462abad3f41d8ca1f06 - Patch () https://git.kernel.org/stable/c/267c61c4afed0ff9a2e83462abad3f41d8ca1f06 - Patch
References () https://git.kernel.org/stable/c/e7b75def33eae61ddaad6cb616c517dc3882eb2a - Patch () https://git.kernel.org/stable/c/e7b75def33eae61ddaad6cb616c517dc3882eb2a - Patch

10 Sep 2024, 17:06

Type Values Removed Values Added
CWE CWE-401
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
First Time Linux linux Kernel
Linux
Summary
  • (es) En el kernel de Linux, se resolvió la siguiente vulnerabilidad: ibmvnic: agregue verificación de tx para evitar fugas de skb A continuación se muestra un resumen de cómo el controlador almacena una referencia a un skb durante la transmisión: tx_buff[free_map[consumer_index]]-&gt;skb = new_skb ; free_map[consumer_index] = IBMVNIC_INVALID_MAP; consumer_index++; Donde los datos variables se ven así: free_map == [4, IBMVNIC_INVALID_MAP, IBMVNIC_INVALID_MAP, 0, 3] consumer_index^ tx_buff == [skb=null, skb=, skb=, skb=null, skb=null ] El controlador tiene comprobaciones para garantizar que free_map[consumer_index] apunte a un índice válido, pero no hubo ninguna verificación para garantizar que este índice apunte a una dirección skb nula o no utilizada. Entonces, si, por casualidad, nuestras listas free_map y tx_buff no están sincronizadas, entonces estábamos arriesgándonos a una pérdida de memoria skb. Esto podría provocar que el control de congestión de TCP deje de enviar paquetes, lo que eventualmente provocaría ETIMEDOUT. Por lo tanto, agregue un condicional para garantizar que la dirección skb sea nula. De lo contrario, advierta al usuario (porque todavía es un error que debe corregirse) y libere el puntero antiguo para evitar problemas de memleak/tcp.
CPE cpe:2.3:o:linux:linux_kernel:6.10:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc2:*:*:*:*:*:*
References () https://git.kernel.org/stable/c/0983d288caf984de0202c66641577b739caad561 - () https://git.kernel.org/stable/c/0983d288caf984de0202c66641577b739caad561 - Patch
References () https://git.kernel.org/stable/c/16ad1557cae582e79bb82dddd612d9bdfaa11d4c - () https://git.kernel.org/stable/c/16ad1557cae582e79bb82dddd612d9bdfaa11d4c - Patch
References () https://git.kernel.org/stable/c/267c61c4afed0ff9a2e83462abad3f41d8ca1f06 - () https://git.kernel.org/stable/c/267c61c4afed0ff9a2e83462abad3f41d8ca1f06 - Patch
References () https://git.kernel.org/stable/c/e7b75def33eae61ddaad6cb616c517dc3882eb2a - () https://git.kernel.org/stable/c/e7b75def33eae61ddaad6cb616c517dc3882eb2a - Patch

29 Jul 2024, 15:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-07-29 15:15

Updated : 2024-11-21 09:32


NVD link : CVE-2024-41066

Mitre link : CVE-2024-41066

CVE.ORG link : CVE-2024-41066


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-401

Missing Release of Memory after Effective Lifetime