Bug 2536143 (CVE-2026-90398) - CVE-2026-90398 kernel: wifi: ath11k: fix stride mismatch in mac_phy_caps_parse()
Summary: CVE-2026-90398 kernel: wifi: ath11k: fix stride mismatch in mac_phy_caps_parse()
Keywords:
Status: NEW
Alias: CVE-2026-90398
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Product Security
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-09-17 16:40 UTC by OSIDB Bzimport
Modified: 2026-10-20 11:02 UTC (History)
17 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2026-09-17 16:40:23 UTC
In the Linux kernel, the following vulnerability has been resolved:

wifi: ath11k: fix stride mismatch in mac_phy_caps_parse()

Currently, in ath11k_wmi_tlv_mac_phy_caps_parse(), kcalloc() sizes the
mac_phy_caps buffer as tot_phy_id * len, where len is clamped to
min(firmware_len, sizeof(struct wmi_mac_phy_capabilities)). The subsequent
memcpy() destination advances by sizeof(full struct) per slot via C
pointer arithmetic, not by the clamped len. When firmware sends short
TLVs, the second and later slots are written past the end of the
allocation.

The reader in ath11k_pull_mac_phy_cap_svc_ready_ext() also indexes the
buffer with full-struct pointer arithmetic, so the allocation must match
that stride.

Fix by using kzalloc_objs(), which derives the element size from the
pointer type, making allocation size and pointer stride provably
consistent regardless of what len the firmware provides.

Compile tested only.


Note You need to log in before you can comment on or make changes to this bug.