In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_tables: unconditionally bump set->nelems before insertion In case that the set is full, a new element gets published then removed without waiting for the RCU grace period, while RCU reader can be walking over it already. To address this issue, add the element transaction even if set is full, but toggle the set_full flag to report -ENFILE so the abort path safely unwinds the set to its previous state. As for element updates, decrement set->nelems to restore it. A simpler fix is to call synchronize_rcu() in the error path. However, with a large batch adding elements to already maxed-out set, this could cause noticeable slowdown of such batches.
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: netfilter: nf_tables: incrementar incondicionalmente set->nelems antes de la inserción En caso de que el conjunto esté lleno, se publica un nuevo elemento que luego se elimina sin esperar el período de gracia de RCU, mientras que un lector de RCU ya puede estar recorriéndolo. Para abordar este problema, añadir la transacción del elemento incluso si el conjunto está lleno, pero alternar la bandera set_full para informar -ENFILE de modo que la ruta de aborto deshaga de forma segura el conjunto a su estado anterior. En cuanto a las actualizaciones de elementos, decrementar set->nelems para restaurarlo. Una solución más simple es llamar a synchronize_rcu() en la ruta de error. Sin embargo, con un gran lote añadiendo elementos a un conjunto ya agotado, esto podría causar una ralentización notable de dichos lotes.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
| Attack Vector | LOCAL |
|---|---|
| Attack Complexity | LOW |
| Privileges Required | LOW |
| User Interaction | NONE |
| Scope | UNCHANGED |
| Confidentiality Impact | HIGH |
| Integrity Impact | HIGH |
| Availability Impact | HIGH |
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Type: Secondary
Exploitability Score: 1.8
Impact Score: 5.9
| Source | Type | Description |
|---|---|---|
| [email protected] | Primary |
en
NVD-CWE-noinfo
|
| Vendor | Product | Version | Update | Type |
|---|---|---|---|---|
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd36b434a40> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd340a90940> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd38672ea40> | Operating System |
| linux | linux_kernel | 4.10 | <built-in method update of dict object at 0x7fd3412d1900> | Operating System |
| linux | linux_kernel | 4.10 | <built-in method update of dict object at 0x7fd36b436000> | Operating System |
| linux | linux_kernel | 4.10 | <built-in method update of dict object at 0x7fd36b436700> | Operating System |
| linux | linux_kernel | 4.10 | <built-in method update of dict object at 0x7fd36971e2c0> | Operating System |
| linux | linux_kernel | 7.0 | <built-in method update of dict object at 0x7fd36b11b180> | Operating System |
| linux | linux_kernel | 7.0 | <built-in method update of dict object at 0x7fd2dbe0cd40> | 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.10:-:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:4.10:rc6:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:4.10:rc7:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:4.10:rc8:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:* |