Commit a830bdc
staging: rtl8723bs: fix OOB reads in IE loops in issue_assocreq() and join_cmd_hdl()
commit ef61d62 upstream.
Two IE parsing loops are missing the header bounds checks before they
dereference pIE->length:
- issue_assocreq() walks pmlmeinfo->network.ies to build the
association request. If the stored IE data ends with only an
element_id byte and no length byte, pIE->length is read one byte
past the end of the buffer.
- join_cmd_hdl() walks pnetwork->ies during station join and has
the same problem under the same conditions.
Both buffers are filled from AP beacon and probe-response frames, so a
malicious AP that sends a truncated final IE can trigger the issue.
Apply the two-guard pattern established in update_beacon_info():
1. Break if fewer than sizeof(*pIE) bytes remain.
2. Break if the IE's declared data extends past the buffer end.
Fixes: 554c0a3 ("staging: Add rtl8723bs sdio wifi driver")
Cc: stable <stable@kernel.org>
Reviewed-by: Luka Gejak <luka.gejak@linux.dev>
Signed-off-by: Alexandru Hossu <hossu.alexandru@gmail.com>
Link: https://patch.msgid.link/20260522004531.1038924-3-hossu.alexandru@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>1 parent 6dd5e8c commit a830bdc
1 file changed
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2968 | 2968 | | |
2969 | 2969 | | |
2970 | 2970 | | |
| 2971 | + | |
| 2972 | + | |
2971 | 2973 | | |
| 2974 | + | |
| 2975 | + | |
2972 | 2976 | | |
2973 | 2977 | | |
2974 | 2978 | | |
| |||
5373 | 5377 | | |
5374 | 5378 | | |
5375 | 5379 | | |
| 5380 | + | |
| 5381 | + | |
5376 | 5382 | | |
| 5383 | + | |
| 5384 | + | |
5377 | 5385 | | |
5378 | 5386 | | |
5379 | 5387 | | |
| |||
0 commit comments