usbnet: ipheth: fix DPE OoB read
commit ee591f2b281721171896117f9946fced31441418 upstream.
Fix an out-of-bounds DPE read, limit the number of processed DPEs to
the amount that fits into the fixed-size NDP16 header.
Fixes: a2d274c62e ("usbnet: ipheth: add CDC NCM support")
Cc: stable@vger.kernel.org
Signed-off-by: Foster Snowhill <forst@pen.gy>
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
c0912ae658
commit
5835bf66c5
@@ -246,7 +246,7 @@ static int ipheth_rcvbulk_callback_ncm(struct urb *urb)
|
||||
goto rx_error;
|
||||
|
||||
dpe = ncm0->dpe16;
|
||||
while (true) {
|
||||
for (int dpe_i = 0; dpe_i < IPHETH_NDP16_MAX_DPE; ++dpe_i, ++dpe) {
|
||||
dg_idx = le16_to_cpu(dpe->wDatagramIndex);
|
||||
dg_len = le16_to_cpu(dpe->wDatagramLength);
|
||||
|
||||
@@ -268,8 +268,6 @@ static int ipheth_rcvbulk_callback_ncm(struct urb *urb)
|
||||
retval = ipheth_consume_skb(buf, dg_len, dev);
|
||||
if (retval != 0)
|
||||
return retval;
|
||||
|
||||
dpe++;
|
||||
}
|
||||
|
||||
rx_error:
|
||||
|
||||
Reference in New Issue
Block a user