CVE-2026-23279

wifi: mac80211: fix NULL pointer dereference in mesh_rx_csa_frame()

State
Published
Severity
Not scored
Published
Mar 25, 2026
Updated
Oct 15, 2026
Reserved
Jan 13, 2026

Read the record on cve.org

Description

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).

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 8f2535b92d685c68db4bc699dd78462a646f6ef9 to before 753ad20dcbe36b67088c7770d8fc357d7cc43e08Affected
  • 8f2535b92d685c68db4bc699dd78462a646f6ef9 to before f061336f072ab03fd29270ae61fede46bf8fd69dAffected
  • 8f2535b92d685c68db4bc699dd78462a646f6ef9 to before 2b5f282b1b7241ef624c3399a1cdff0bb1a3eeabAffected
  • 8f2535b92d685c68db4bc699dd78462a646f6ef9 to before 22a9adea7e26d236406edc0ea00b54351dd56b9cAffected
  • 8f2535b92d685c68db4bc699dd78462a646f6ef9 to before f5d8af683410a8c82e48b51291915bd612523d9aAffected
  • 8f2535b92d685c68db4bc699dd78462a646f6ef9 to before cc6d5a3c0a854aeae00915fc5386570c86029c60Affected
  • 8f2535b92d685c68db4bc699dd78462a646f6ef9 to before be8b82c567fda86f2cbb43b7208825125bb31421Affected
  • 8f2535b92d685c68db4bc699dd78462a646f6ef9 to before 017c1792525064a723971f0216e6ef86a8c7af11Affected
LinuxLinux
  • 3.13Affected
  • before 3.13Not affected
  • 5.10.253 through 5.10.*Not affected
  • 5.15.203 through 5.15.*Not affected
  • 6.1.167 through 6.1.*Not affected
  • 6.6.130 through 6.6.*Not affected
  • 6.12.77 through 6.12.*Not affected
  • 6.18.17 through 6.18.*Not affected
  • 6.19.7 through 6.19.*Not affected
  • 7.0 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.