Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
8ca151b568b67a7b72dcfc6ee6ea7c107ddd795c to < 7c8faa31080342aec4903c9acb20caf82fcca1efaffected8ca151b568b67a7b72dcfc6ee6ea7c107ddd795c to < 6b3223449c959a8be94a1f042288059e40fcccb0affected8ca151b568b67a7b72dcfc6ee6ea7c107ddd795c to < f06cdd8d4ba5252986f51f80cc30263636397128affected8ca151b568b67a7b72dcfc6ee6ea7c107ddd795c to < 8ba438ef3cacc4808a63ed0ce24d4f0942cfe55daffected
Linux Linux
Default version status: affected
3.9affected0 to < 3.9unaffected5.15.135 to ≤ 5.15.*unaffected6.1.57 to ≤ 6.1.*unaffected6.5.7 to ≤ 6.5.*unaffected6.6 to ≤ *unaffected