lkml.org 
[lkml]   [2022]   [Oct]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 43/54] wifi: cfg80211: fix u8 overflow in cfg80211_update_notlisted_nontrans()
    Date
    From: Johannes Berg <johannes.berg@intel.com>

    commit aebe9f4639b13a1f4e9a6b42cdd2e38c617b442d upstream.

    In the copy code of the elements, we do the following calculation
    to reach the end of the MBSSID element:

    /* copy the IEs after MBSSID */
    cpy_len = mbssid[1] + 2;

    This looks fine, however, cpy_len is a u8, the same as mbssid[1],
    so the addition of two can overflow. In this case the subsequent
    memcpy() will overflow the allocated buffer, since it copies 256
    bytes too much due to the way the allocation and memcpy() sizes
    are calculated.

    Fix this by using size_t for the cpy_len variable.

    This fixes CVE-2022-41674.

    Reported-by: Soenke Huster <shuster@seemoo.tu-darmstadt.de>
    Tested-by: Soenke Huster <shuster@seemoo.tu-darmstadt.de>
    Fixes: 0b8fb8235be8 ("cfg80211: Parsing of Multiple BSSID information in scanning")
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    net/wireless/scan.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/net/wireless/scan.c
    +++ b/net/wireless/scan.c
    @@ -2228,7 +2228,7 @@ cfg80211_update_notlisted_nontrans(struc
    size_t new_ie_len;
    struct cfg80211_bss_ies *new_ies;
    const struct cfg80211_bss_ies *old;
    - u8 cpy_len;
    + size_t cpy_len;

    lockdep_assert_held(&wiphy_to_rdev(wiphy)->bss_lock);


    \
     
     \ /
      Last update: 2022-10-13 20:03    [W:4.048 / U:0.352 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site