]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
HID: logitech-hidpp: Prevent use-after-free on force feedback initialisation failure
authorLee Jones <lee@kernel.org>
Fri, 27 Feb 2026 10:09:38 +0000 (10:09 +0000)
committerBenjamin Tissoires <bentiss@kernel.org>
Mon, 16 Mar 2026 15:21:48 +0000 (16:21 +0100)
Presently, if the force feedback initialisation fails when probing the
Logitech G920 Driving Force Racing Wheel for Xbox One, an error number
will be returned and propagated before the userspace infrastructure
(sysfs and /dev/input) has been torn down.  If userspace ignores the
errors and continues to use its references to these dangling entities, a
UAF will promptly follow.

We have 2 options; continue to return the error, but ensure that all of
the infrastructure is torn down accordingly or continue to treat this
condition as a warning by emitting the message but returning success.
It is thought that the original author's intention was to emit the
warning but keep the device functional, less the force feedback feature,
so let's go with that.

Signed-off-by: Lee Jones <lee@kernel.org>
Reviewed-by: Günther Noack <gnoack@google.com>
Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
drivers/hid/hid-logitech-hidpp.c

index c3d53250a760406022628483e5d566f27bbbe68c..65bfad405ac5b4f38b6534e91d1c7fc283eef5dc 100644 (file)
@@ -4487,10 +4487,12 @@ static int hidpp_probe(struct hid_device *hdev, const struct hid_device_id *id)
                if (!ret)
                        ret = hidpp_ff_init(hidpp, &data);
 
-               if (ret)
+               if (ret) {
                        hid_warn(hidpp->hid_dev,
                     "Unable to initialize force feedback support, errno %d\n",
                                 ret);
+                       ret = 0;
+               }
        }
 
        /*