In the Linux kernel, the following vulnerability has been resolved: wifi: mac80211: fix NULL pointer dereference in mesh_rx_csa_frame() In mesh_rx_csa_frame(), elems->mesh_chansw_params_ie is dereferenced at lines 1638 and 1642 without a prior NULL check: ifmsh->chsw_ttl = elems->mesh_chansw_params_ie->mesh_ttl; ... pre_value = le16_to_cpu(elems->mesh_chansw_params_ie->mesh_pre_value); The mesh_matches_local() check above only validates the Mesh ID, Mesh Configuration, and Supported Rates IEs. It does not verify the presence of the Mesh Channel Switch Parameters IE (element ID 118). When a received CSA action frame omits that IE, ieee802_11_parse_elems() leaves elems->mesh_chansw_params_ie as NULL, and the unconditional dereference causes a kernel NULL pointer dereference. A remote mesh peer with an established peer link (PLINK_ESTAB) can trigger this by sending a crafted SPECTRUM_MGMT/CHL_SWITCH action frame that includes a matching Mesh ID and Mesh Configuration IE but omits the Mesh Channel Switch Parameters IE. No authentication beyond the default open mesh peering is required. Crash confirmed on kernel 6.17.0-5-generic via mac80211_hwsim: BUG: kernel NULL pointer dereference, address: 0000000000000000 Oops: Oops: 0000 [#1] SMP NOPTI RIP: 0010:ieee80211_mesh_rx_queued_mgmt+0x143/0x2a0 [mac80211] CR2: 0000000000000000 Fix by adding a NULL check for mesh_chansw_params_ie after mesh_matches_local() returns, consistent with how other optional IEs are guarded throughout the mesh code. The bug has been present since v3.13 (released 2014-01-19).
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: wifi: mac80211: corrige la desreferencia de puntero NULL en mesh_rx_csa_frame() En mesh_rx_csa_frame(), elems->mesh_chansw_params_ie es desreferenciado en las líneas 1638 y 1642 sin una verificación de NULL previa: ifmsh->chsw_ttl = elems->mesh_chansw_params_ie->mesh_ttl; ... pre_value = le16_to_cpu(elems->mesh_chansw_params_ie->mesh_pre_value); La verificación mesh_matches_local() anterior solo valida el ID de Malla, la Configuración de Malla y los IEs de Tasas Soportadas. No verifica la presencia del IE de Parámetros de Cambio de Canal de Malla (ID de elemento 118). Cuando un frame de acción CSA recibido omite ese IE, ieee802_11_parse_elems() deja elems->mesh_chansw_params_ie como NULL, y la desreferencia incondicional causa una desreferencia de puntero NULL del kernel. Un par de malla remoto con un enlace de par establecido (PLINK_ESTAB) puede activar esto enviando un frame de acción SPECTRUM_MGMT/CHL_SWITCH manipulado que incluye un ID de Malla y un IE de Configuración de Malla coincidentes, pero omite el IE de Parámetros de Cambio de Canal de Malla. No se requiere autenticación más allá del emparejamiento de malla abierta predeterminado. Fallo confirmado en el kernel 6.17.0-5-generic a través de mac80211_hwsim: BUG: desreferencia de puntero NULL del kernel, dirección: 0000000000000000 Oops: Oops: 0000 [#1] SMP NOPTI RIP: 0010:ieee80211_mesh_rx_queued_mgmt+0x143/0x2a0 [mac80211] CR2: 0000000000000000 Solución añadiendo una verificación de NULL para mesh_chansw_params_ie después de que mesh_matches_local() retorne, consistente con cómo otros IEs opcionales son protegidos a lo largo del código de malla. El error ha estado presente desde la v3.13 (lanzada el 19-01-2014).
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-476
|
| Vendor | Product | Version | Update | Type |
|---|---|---|---|---|
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd2d8113780> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd2dbe95300> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd36b185880> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd3686d1440> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd2d8112240> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd36945d5c0> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd36945f300> | Operating System |
| linux | linux_kernel | 7.0 | <built-in method update of dict object at 0x7fd2dbe97880> | 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:7.0:rc1:*:*:*:*:*:* |