CVE-2023-52531

wifi: iwlwifi: mvm: Fix a memory corruption issue

published March 2, 2024

CVSS
—
EPSS
0%
Percentile
13.9
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

wifi: iwlwifi: mvm: Fix a memory corruption issue

A few lines above, space is kzalloc()'ed for:

sizeof(struct iwl_nvm_data) +

sizeof(struct ieee80211_channel) +

sizeof(struct ieee80211_rate)

'mvm->nvm_data' is a 'struct iwl_nvm_data', so it is fine.

At the end of this structure, there is the 'channels' flex array.

Each element is of type 'struct ieee80211_channel'.

So only 1 element is allocated in this array.

When doing:

mvm->nvm_data->bands[0].channels = mvm->nvm_data->channels;

We point at the first element of the 'channels' flex array.

So this is fine.

However, when doing:

mvm->nvm_data->bands[0].bitrates =

(void *)((u8 *)mvm->nvm_data->channels + 1);

because of the "(u8 *)" cast, we add only 1 to the address of the beginning

of the flex array.

It is likely that we want point at the 'struct ieee80211_rate' allocated

just after.

Remove the spurious casting so that the pointer arithmetic works as

expected.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00237 · 13.9th percentile
Published
2024-03-02T21:52Z
EPSS history
Timeline
  • 02 MAR 21:52Z
    wifi: iwlwifi: mvm: Fix a memory corruption issue
    cvelistv5