CVE-2021-47097

EUVD-2021-33745
In the Linux kernel, the following vulnerability has been resolved:

Input: elantech - fix stack out of bound access in elantech_change_report_id()

The array param[] in elantech_change_report_id() must be at least 3
bytes, because elantech_read_reg_params() is calling ps2_command() with
PSMOUSE_CMD_GETINFO, that is going to access 3 bytes from param[], but
it's defined in the stack as an array of 2 bytes, therefore we have a
potential stack out-of-bounds access here, also confirmed by KASAN:

[    6.512374] BUG: KASAN: stack-out-of-bounds in __ps2_command+0x372/0x7e0
[    6.512397] Read of size 1 at addr ffff8881024d77c2 by task kworker/2:1/118

[    6.512416] CPU: 2 PID: 118 Comm: kworker/2:1 Not tainted 5.13.0-22-generic #22+arighi20211110
[    6.512428] Hardware name: LENOVO 20T8000QGE/20T8000QGE, BIOS R1AET32W (1.08 ) 08/14/2020
[    6.512436] Workqueue: events_long serio_handle_event
[    6.512453] Call Trace:
[    6.512462]  show_stack+0x52/0x58
[    6.512474]  dump_stack+0xa1/0xd3
[    6.512487]  print_address_description.constprop.0+0x1d/0x140
[    6.512502]  ? __ps2_command+0x372/0x7e0
[    6.512516]  __kasan_report.cold+0x7d/0x112
[    6.512527]  ? _raw_write_lock_irq+0x20/0xd0
[    6.512539]  ? __ps2_command+0x372/0x7e0
[    6.512552]  kasan_report+0x3c/0x50
[    6.512564]  __asan_load1+0x6a/0x70
[    6.512575]  __ps2_command+0x372/0x7e0
[    6.512589]  ? ps2_drain+0x240/0x240
[    6.512601]  ? dev_printk_emit+0xa2/0xd3
[    6.512612]  ? dev_vprintk_emit+0xc5/0xc5
[    6.512621]  ? __kasan_check_write+0x14/0x20
[    6.512634]  ? mutex_lock+0x8f/0xe0
[    6.512643]  ? __mutex_lock_slowpath+0x20/0x20
[    6.512655]  ps2_command+0x52/0x90
[    6.512670]  elantech_ps2_command+0x4f/0xc0 [psmouse]
[    6.512734]  elantech_change_report_id+0x1e6/0x256 [psmouse]
[    6.512799]  ? elantech_report_trackpoint.constprop.0.cold+0xd/0xd [psmouse]
[    6.512863]  ? ps2_command+0x7f/0x90
[    6.512877]  elantech_query_info.cold+0x6bd/0x9ed [psmouse]
[    6.512943]  ? elantech_setup_ps2+0x460/0x460 [psmouse]
[    6.513005]  ? psmouse_reset+0x69/0xb0 [psmouse]
[    6.513064]  ? psmouse_attr_set_helper+0x2a0/0x2a0 [psmouse]
[    6.513122]  ? phys_pmd_init+0x30e/0x521
[    6.513137]  elantech_init+0x8a/0x200 [psmouse]
[    6.513200]  ? elantech_init_ps2+0xf0/0xf0 [psmouse]
[    6.513249]  ? elantech_query_info+0x440/0x440 [psmouse]
[    6.513296]  ? synaptics_send_cmd+0x60/0x60 [psmouse]
[    6.513342]  ? elantech_query_info+0x440/0x440 [psmouse]
[    6.513388]  ? psmouse_try_protocol+0x11e/0x170 [psmouse]
[    6.513432]  psmouse_extensions+0x65d/0x6e0 [psmouse]
[    6.513476]  ? psmouse_try_protocol+0x170/0x170 [psmouse]
[    6.513519]  ? mutex_unlock+0x22/0x40
[    6.513526]  ? ps2_command+0x7f/0x90
[    6.513536]  ? psmouse_probe+0xa3/0xf0 [psmouse]
[    6.513580]  psmouse_switch_protocol+0x27d/0x2e0 [psmouse]
[    6.513624]  psmouse_connect+0x272/0x530 [psmouse]
[    6.513669]  serio_driver_probe+0x55/0x70
[    6.513679]  really_probe+0x190/0x720
[    6.513689]  driver_probe_device+0x160/0x1f0
[    6.513697]  device_driver_attach+0x119/0x130
[    6.513705]  ? device_driver_attach+0x130/0x130
[    6.513713]  __driver_attach+0xe7/0x1a0
[    6.513720]  ? device_driver_attach+0x130/0x130
[    6.513728]  bus_for_each_dev+0xfb/0x150
[    6.513738]  ? subsys_dev_iter_exit+0x10/0x10
[    6.513748]  ? _raw_write_unlock_bh+0x30/0x30
[    6.513757]  driver_attach+0x2d/0x40
[    6.513764]  serio_handle_event+0x199/0x3d0
[    6.513775]  process_one_work+0x471/0x740
[    6.513785]  worker_thread+0x2d2/0x790
[    6.513794]  ? process_one_work+0x740/0x740
[    6.513802]  kthread+0x1b4/0x1e0
[    6.513809]  ? set_kthread_struct+0x80/0x80
[    6.513816]  ret_from_fork+0x22/0x30

[    6.513832] The buggy address belongs to the page:
[    6.513838] page:00000000bc35e189 refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x1024d7
[    6.513847] flags: 0x17ffffc0000000(node=0|zone=2|lastcpupid=0x1fffff)
[    6.513860] raw: 0
---truncated---
ProviderTypeBase ScoreAtk. VectorAtk. ComplexityPriv. RequiredVector
NISTPrimary
7.1 HIGH
LOCAL
LOW
LOW
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
Base Score
CVSS 3.x
EPSS Score
Percentile: 1%
Affected Products (NVD)
VendorProductVersion
linuxlinux_kernel
5.4.103 ≤
𝑥
< 5.4.169
linuxlinux_kernel
5.10.21 ≤
𝑥
< 5.10.89
linuxlinux_kernel
5.11 ≤
𝑥
< 5.15.12
linuxlinux_kernel
5.16:rc1
linuxlinux_kernel
5.16:rc2
linuxlinux_kernel
5.16:rc3
linuxlinux_kernel
5.16:rc4
linuxlinux_kernel
5.16:rc5
linuxlinux_kernel
5.16:rc6
𝑥
= Vulnerable software versions
Debian logo
Debian Releases
Debian Product
Codename
linux
bookworm
6.1.106-3
fixed
bookworm (security)
6.1.112-1
fixed
bullseye
5.10.223-1
fixed
bullseye (security)
5.10.226-1
fixed
buster
not-affected
sid
6.11.5-1
fixed
trixie
6.11.5-1
fixed
Ubuntu logo
Ubuntu Releases
Ubuntu Product
Codename
linux
bionic
not-affected
focal
Fixed 5.4.0-105.119
released
jammy
not-affected
mantic
not-affected
noble
not-affected
trusty
not-affected
xenial
not-affected
linux-allwinner-5.19
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-aws
bionic
not-affected
focal
Fixed 5.4.0-1069.73
released
jammy
not-affected
mantic
not-affected
noble
not-affected
trusty
not-affected
xenial
not-affected
linux-aws-5.0
bionic
ignored
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-aws-5.11
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-aws-5.13
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-aws-5.15
focal
not-affected
jammy
dne
mantic
dne
noble
dne
linux-aws-5.19
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-aws-5.3
bionic
ignored
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-aws-5.4
bionic
pending
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-aws-5.8
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-aws-6.2
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-aws-6.5
focal
dne
jammy
not-affected
mantic
dne
noble
dne
linux-aws-fips
bionic
dne
focal
dne
jammy
dne
mantic
dne
noble
dne
trusty
dne
xenial
dne
linux-aws-hwe
focal
dne
jammy
dne
mantic
dne
noble
dne
xenial
not-affected
linux-azure
bionic
ignored
focal
Fixed 5.4.0-1073.76
released
jammy
not-affected
mantic
not-affected
noble
not-affected
trusty
not-affected
xenial
not-affected
linux-azure-4.15
bionic
not-affected
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-azure-5.11
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-azure-5.13
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-azure-5.15
focal
not-affected
jammy
dne
mantic
dne
noble
dne
linux-azure-5.19
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-azure-5.3
bionic
ignored
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-azure-5.4
bionic
pending
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-azure-5.8
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-azure-6.2
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-azure-6.5
focal
dne
jammy
not-affected
mantic
dne
noble
dne
linux-azure-edge
bionic
ignored
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-azure-fde
focal
ignored
jammy
not-affected
mantic
dne
noble
dne
linux-azure-fde-5.15
focal
not-affected
jammy
dne
mantic
dne
noble
dne
linux-azure-fde-5.19
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-azure-fde-6.2
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-azure-fips
bionic
dne
focal
dne
jammy
dne
mantic
dne
noble
dne
trusty
dne
xenial
dne
linux-bluefield
focal
Fixed 5.4.0-1032.35
released
jammy
dne
mantic
dne
noble
dne
linux-fips
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-gcp
bionic
ignored
focal
Fixed 5.4.0-1068.72
released
jammy
not-affected
mantic
not-affected
noble
not-affected
xenial
not-affected
linux-gcp-4.15
bionic
not-affected
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-gcp-5.11
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-gcp-5.13
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-gcp-5.15
focal
not-affected
jammy
dne
mantic
dne
noble
dne
linux-gcp-5.19
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-gcp-5.3
bionic
ignored
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-gcp-5.4
bionic
pending
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-gcp-5.8
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-gcp-6.2
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-gcp-6.5
focal
dne
jammy
not-affected
mantic
dne
noble
dne
linux-gcp-fips
bionic
dne
focal
dne
jammy
dne
mantic
dne
noble
dne
trusty
dne
xenial
dne
linux-gke
focal
ignored
jammy
not-affected
mantic
dne
noble
not-affected
linux-gke-4.15
bionic
ignored
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-gke-5.15
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-gke-5.4
bionic
ignored
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-gkeop
focal
Fixed 5.4.0-1037.38
released
jammy
not-affected
mantic
dne
noble
dne
linux-gkeop-5.15
focal
not-affected
jammy
dne
mantic
dne
noble
dne
linux-gkeop-5.4
bionic
ignored
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-hwe
bionic
ignored
focal
dne
jammy
dne
mantic
dne
noble
dne
xenial
not-affected
linux-hwe-5.11
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-hwe-5.13
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-hwe-5.15
focal
not-affected
jammy
dne
mantic
dne
noble
dne
linux-hwe-5.19
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-hwe-5.4
bionic
pending
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-hwe-5.8
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-hwe-6.2
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-hwe-6.5
focal
dne
jammy
not-affected
mantic
dne
noble
dne
linux-hwe-6.8
bionic
dne
focal
dne
jammy
not-affected
noble
dne
trusty
dne
xenial
dne
linux-hwe-edge
bionic
ignored
focal
dne
jammy
dne
mantic
dne
noble
dne
xenial
ignored
linux-ibm
focal
Fixed 5.4.0-1018.20
released
jammy
not-affected
mantic
ignored
noble
not-affected
linux-ibm-5.15
focal
not-affected
jammy
dne
mantic
dne
noble
dne
linux-ibm-5.4
bionic
pending
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-intel
bionic
dne
focal
dne
jammy
dne
mantic
dne
noble
not-affected
trusty
dne
xenial
dne
linux-intel-5.13
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-intel-iot-realtime
bionic
dne
focal
dne
jammy
dne
noble
dne
trusty
dne
xenial
dne
linux-intel-iotg
focal
dne
jammy
not-affected
mantic
dne
noble
dne
linux-intel-iotg-5.15
focal
not-affected
jammy
dne
mantic
dne
noble
dne
linux-iot
focal
not-affected
jammy
dne
mantic
dne
noble
dne
linux-kvm
bionic
not-affected
focal
Fixed 5.4.0-1059.62
released
jammy
not-affected
mantic
dne
noble
dne
xenial
not-affected
linux-laptop
focal
dne
jammy
dne
mantic
not-affected
noble
dne
linux-lowlatency
focal
dne
jammy
not-affected
mantic
not-affected
noble
not-affected
linux-lowlatency-hwe-5.15
focal
not-affected
jammy
dne
mantic
dne
noble
dne
linux-lowlatency-hwe-5.19
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-lowlatency-hwe-6.2
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-lowlatency-hwe-6.5
focal
dne
jammy
not-affected
mantic
dne
noble
dne
linux-lowlatency-hwe-6.8
bionic
dne
focal
dne
jammy
not-affected
noble
dne
trusty
dne
xenial
dne
linux-lts-xenial
focal
dne
jammy
dne
mantic
dne
noble
dne
trusty
not-affected
linux-nvidia
focal
dne
jammy
not-affected
mantic
dne
noble
not-affected
linux-nvidia-6.2
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-nvidia-6.5
bionic
dne
focal
dne
jammy
not-affected
mantic
dne
noble
dne
trusty
dne
xenial
dne
linux-nvidia-6.8
bionic
dne
focal
dne
jammy
not-affected
noble
dne
trusty
dne
xenial
dne
linux-nvidia-lowlatency
bionic
dne
focal
dne
jammy
dne
noble
not-affected
trusty
dne
xenial
dne
linux-oem
bionic
ignored
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-oem-5.10
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-oem-5.13
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-oem-5.14
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-oem-5.17
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-oem-5.6
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-oem-6.0
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-oem-6.1
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-oem-6.5
focal
dne
jammy
not-affected
mantic
dne
noble
dne
linux-oem-6.8
bionic
dne
focal
dne
jammy
dne
mantic
dne
noble
not-affected
trusty
dne
xenial
dne
linux-oracle
bionic
not-affected
focal
Fixed 5.4.0-1067.72
released
jammy
not-affected
mantic
not-affected
noble
not-affected
xenial
not-affected
linux-oracle-5.0
bionic
ignored
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-oracle-5.11
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-oracle-5.13
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-oracle-5.15
focal
not-affected
jammy
dne
mantic
dne
noble
dne
linux-oracle-5.3
bionic
ignored
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-oracle-5.4
bionic
pending
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-oracle-5.8
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-oracle-6.5
bionic
dne
focal
dne
jammy
not-affected
mantic
dne
noble
dne
trusty
dne
xenial
dne
linux-raspi
focal
Fixed 5.4.0-1056.63
released
jammy
not-affected
mantic
not-affected
noble
not-affected
linux-raspi-5.4
bionic
pending
focal
dne
jammy
dne
mantic
dne
noble
dne
linux-raspi-realtime
bionic
dne
focal
dne
jammy
dne
noble
dne
trusty
dne
xenial
dne
linux-raspi2
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-realtime
bionic
dne
focal
dne
jammy
ignored
noble
dne
trusty
dne
xenial
dne
linux-riscv
focal
ignored
jammy
ignored
mantic
not-affected
noble
not-affected
linux-riscv-5.11
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-riscv-5.15
focal
not-affected
jammy
dne
mantic
dne
noble
dne
linux-riscv-5.19
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-riscv-5.8
focal
ignored
jammy
dne
mantic
dne
noble
dne
linux-riscv-6.5
focal
dne
jammy
not-affected
mantic
dne
noble
dne
linux-riscv-6.8
bionic
dne
focal
dne
jammy
not-affected
noble
dne
trusty
dne
xenial
dne
linux-starfive
focal
dne
jammy
dne
mantic
not-affected
noble
dne
linux-starfive-5.19
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-starfive-6.2
focal
dne
jammy
ignored
mantic
dne
noble
dne
linux-starfive-6.5
focal
dne
jammy
not-affected
mantic
dne
noble
dne
linux-xilinx-zynqmp
focal
not-affected
jammy
not-affected
mantic
dne
noble
dne