In the Linux kernel, the following vulnerability has been resolved: netfilter: ipset: Fix race between namespace cleanup and gc in the list:set type Lion Ackermann reported that there is a race condition between namespace cleanup in ipset and the garbage collection of the list:set type. The namespace cleanup can destroy the list:set type of sets while the gc of the set type is waiting to run in rcu cleanup. The latter uses data from the destroyed set which thus leads use after free. The patch contains the following parts: - When destroying all sets, first remove the garbage collectors, then wait if needed and then destroy the sets. - Fix the badly ordered "wait then remove gc" for the destroy a single set case. - Fix the missing rcu locking in the list:set type in the userspace test case. - Use proper RCU list handlings in the list:set type. The patch depends on c1193d9bbbd3 (netfilter: ipset: Add list flush to cancel_gc).
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: netfilter: ipset: corrige la ejecución entre la limpieza del espacio de nombres y gc en el tipo list:set Lion Ackermann informó que existe una condición de ejecución entre la limpieza del espacio de nombres en ipset y la recolección de basura de la lista : establecer tipo. La limpieza del espacio de nombres puede destruir el tipo list:set de conjuntos mientras el gc del tipo set espera ejecutarse en la limpieza de rcu. Este último utiliza datos del conjunto destruido, lo que lleva a un uso posterior al gratuito. El parche contiene las siguientes partes: - Al destruir todos los conjuntos, primero retire los recolectores de basura, luego espere si es necesario y luego destruya los conjuntos. - Se corrigió el error "esperar y luego eliminar gc" mal ordenado para destruir un solo caso de conjunto. - Corrija el bloqueo de rcu que falta en la lista: establezca el tipo en el caso de prueba del espacio de usuario. - Utilice el manejo adecuado de la lista de RCU en el tipo list:set. El parche depende de c1193d9bbbd3 (netfilter: ipset: Agregar lista vaciada a cancel_gc).
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
| Attack Vector | LOCAL |
|---|---|
| Attack Complexity | HIGH |
| Privileges Required | LOW |
| User Interaction | NONE |
| Scope | UNCHANGED |
| Confidentiality Impact | HIGH |
| Integrity Impact | HIGH |
| Availability Impact | HIGH |
| Source | Type | Description |
|---|---|---|
| [email protected] | Primary |
en
CWE-362
en
CWE-416
|
| Vendor | Product | Version | Update | Type |
|---|---|---|---|---|
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd36b37fe80> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd360696680> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd3848e07c0> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd3703cf1c0> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd36b37fcc0> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd3606976c0> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd36b8d18c0> | Operating System |
| linux | linux_kernel | 6.8 | <built-in method update of dict object at 0x7fd3703cca40> | Operating System |
| linux | linux_kernel | 6.8 | <built-in method update of dict object at 0x7fd3703ceec0> | Operating System |
| linux | linux_kernel | 6.8 | <built-in method update of dict object at 0x7fd36b37c400> | Operating System |
| linux | linux_kernel | 6.8 | <built-in method update of dict object at 0x7fd341208940> | Operating System |
| linux | linux_kernel | 6.8 | <built-in method update of dict object at 0x7fd360696780> | Operating System |
| linux | linux_kernel | 6.8 | <built-in method update of dict object at 0x7fd36a6d18c0> | Operating System |
| linux | linux_kernel | 6.10 | <built-in method update of dict object at 0x7fd368d09d80> | Operating System |
| linux | linux_kernel | 6.10 | <built-in method update of dict object at 0x7fd36b3f0640> | Operating System |
| linux | linux_kernel | 6.10 | <built-in method update of dict object at 0x7fd3848e2900> | 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:*:*:*:*:*:*:*:* |
| 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:6.8:-:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.8:rc3:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.8:rc4:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.8:rc5:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.8:rc6:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.8:rc7:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.10:rc1:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.10:rc2:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.10:rc3:*:*:*:*:*:* |