In the Linux kernel, the following vulnerability has been resolved: ice: Fix memory leak in ice_set_ringparam() In ice_set_ringparam, tx_rings and xdp_rings are allocated before rx_rings. If the allocation of rx_rings fails, the code jumps to the done label leaking both tx_rings and xdp_rings. Furthermore, if the setup of an individual Rx ring fails during the loop, the code jumps to the free_tx label which releases tx_rings but leaks xdp_rings. Fix this by introducing a free_xdp label and updating the error paths to ensure both xdp_rings and tx_rings are properly freed if rx_rings allocation or setup fails. Compile tested only. Issue found using a prototype static analysis tool and code review.
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: ice: Corrección de fuga de memoria en ice_set_ringparam() En ice_set_ringparam, tx_rings y xdp_rings se asignan antes de rx_rings. Si la asignación de rx_rings falla, el código salta a la etiqueta done provocando una fuga tanto de tx_rings como de xdp_rings. Además, si la configuración de un anillo Rx individual falla durante el bucle, el código salta a la etiqueta free_tx, que libera tx_rings pero provoca una fuga de xdp_rings. Esto se corrige introduciendo una etiqueta free_xdp y actualizando las rutas de error para asegurar que tanto xdp_rings como tx_rings se liberen correctamente si la asignación o configuración de rx_rings falla. Probado solo en compilación. Problema encontrado utilizando una herramienta prototipo de análisis estático y revisión de código.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
| Attack Vector | LOCAL |
|---|---|
| Attack Complexity | LOW |
| Privileges Required | LOW |
| User Interaction | NONE |
| Scope | UNCHANGED |
| Confidentiality Impact | NONE |
| Integrity Impact | NONE |
| Availability Impact | HIGH |
| Source | Type | Description |
|---|---|---|
| [email protected] | Primary |
en
CWE-401
|
| Vendor | Product | Version | Update | Type |
|---|---|---|---|---|
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd360418d40> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd360418840> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd39c478f00> | Operating System |
| linux | linux_kernel | 4.17 | <built-in method update of dict object at 0x7fd39c478600> | Operating System |
| linux | linux_kernel | 7.0 | <built-in method update of dict object at 0x7fd360418dc0> | Operating System |
| linux | linux_kernel | 7.0 | <built-in method update of dict object at 0x7fd360418b00> | Operating System |
| linux | linux_kernel | 7.0 | <built-in method update of dict object at 0x7fd38477c600> | Operating System |
| linux | linux_kernel | 7.0 | <built-in method update of dict object at 0x7fd39c478180> | Operating System |
| linux | linux_kernel | 7.0 | <built-in method update of dict object at 0x7fd38477c780> | Operating System |
| linux | linux_kernel | 7.0 | <built-in method update of dict object at 0x7fd3604195c0> | Operating System |
| linux | linux_kernel | 7.0 | <built-in method update of dict object at 0x7fd384626fc0> | Operating System |
| Vulnerable | CPE |
|---|---|
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:4.17:-:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:* |