CVE-2026-80772
Im Linux-Kernel wurde die folgende Schwachstelle behoben: HID: nintendo: Out-of-Bounds-Read in joycon_ctlr_read_handler() behoben joycon_ctlr_read_handler() castet einen eingehenden HID-Eingabebericht auf struct joycon_input_report und parst ihn, wobei der Cast nur durch eine 12-Byte-Längenprüfung abgesichert ist: if (size >= 12) /* make sure it contains the input report */ joycon_parse_report(ctlr, (struct joycon_input_report *)data); struct joycon_input_report ist 49 Bytes groß: ein 13-Byte-Header gefolgt von einer Union, deren IMU-Arm 36 Bytes groß ist. Für einen IMU-Bericht durchläuft joycon_parse_report() -> joycon_parse_imu_report() diese Union (Struktur-Offsets 13..48), sodass ein Bericht von genau 12 Bytes mit data[0] == JC_INPUT_IMU_DATA die Prüfung besteht, aber bis zu 37 Bytes über seine deklarierte Länge hinaus gelesen wird. Die überlesenen Bytes werden in Beschleunigungs-/Gyroskopwerte dekodiert und über das Eingabegerät „(IMU)“ an den Userspace weitergegeben, wodurch treiberinterner Speicher offengelegt wird. data[0] und size werden vollständig von einem bösartigen oder gefälschten Joy-Con/Pro Controller kontrolliert. Empfangspuffer werden auf die maximale Berichtslänge dimensioniert, daher handelt es sich um ein Überlesen innerhalb der Zuweisung und nicht um ein Slab-OOB, aber die dekodierten Bytes erreichen weiterhin den Userspace. Der verwandte Subcmd-Pfad in joycon_ctlr_handle_event() begrenzt denselben Cast bereits korrekt: if (size < sizeof(struct joycon_input_report) || data[0] != JC_INPUT_SUBCMD_REPLY) break; Verwende hier dieselbe Begrenzung mit sizeof(struct joycon_input_report).
Verwandte Artikel
This product uses the NVD API but is not endorsed or certified by the NVD.
Die technische Beschreibung ist unsere Übersetzung des englischen NVD-Originaltexts.
