Thread (6 messages) 6 messages, 3 authors, 2021-05-05

Re: [PATCH] usbhid: fix info leak in hid_submit_ctrl

From: Benjamin Tissoires <hidden>
Date: 2021-05-05 13:25:47
Also in: linux-kernel-mentees, linux-usb, lkml

On Wed, May 5, 2021 at 2:42 PM Jiri Kosina [off-list ref] wrote:
On Sun, 25 Apr 2021, Anirudh Rayabharam wrote:
quoted
In hid_submit_ctrl(), the way of calculating the report length doesn't
take into account that report->size can be zero. When running the
syzkaller reproducer, a report of size 0 causes hid_submit_ctrl) to
calculate transfer_buffer_length as 16384. When this urb is passed to
the usb core layer, KMSAN reports an info leak of 16384 bytes.

To fix this, first modify hid_report_len() to account for the zero
report size case by using DIV_ROUND_UP for the division. Then, call it
from hid_submit_ctrl().

Reported-by: syzbot+7c2bb71996f95a82524c@syzkaller.appspotmail.com
Signed-off-by: Anirudh Rayabharam <redacted>
Benjamin, could you please run this one through your regression testing
machinery before we send it upstream?
I don't have a reproducer like syzbot has for the exact bug here, as I
am relying on one real USB device to check if usbhid is not too
broken.
However, the test suite should catch if there is an error implied by
the hid_report_len() change.

Anyway, I manually started the job and will report when it is done.

Cheers,
Benjamin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help