Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAEih1qWG=Ww18e6j-07RKND47_xAbwvPyoyMyiiP8GgeE+fEJw@mail.gmail.com>
Date: Wed, 18 Jan 2023 16:20:51 +0100
From: Pietro Borrello <borrello@...g.uniroma1.it>
To: oss-security@...ts.openwall.com
Subject: Linux Kernel: hid: NULL pointer dereference in hid_betopff_play()

Hi all,

I'm disclosing a possible DoS when plugging in a malicious USB device,
which advertises itself as a betop USB device.

A device driver must check that the device correctly registered the
expected inputs and reports.
Otherwise, a malicious USB device may violate assumptions throughout
the driver's code.

betopff_init() in the betop driver's code only checks that the device advertises
at least 4 report values among all its fields, but hid_betopff_play() expects
at least 4 report fields with a value each.
A device advertising an output report with one field and 4 report values
would pass the check but crash the kernel with a NULL pointer dereference
in hid_betopff_play(), when accessing `betopff->report->field[2]->value[0]`.

Best regards,
Pietro Borrello

Powered by blists - more mailing lists

Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.