lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230511185252.386941-1-dmitry.torokhov@gmail.com>
Date:   Thu, 11 May 2023 11:52:40 -0700
From:   Dmitry Torokhov <dmitry.torokhov@...il.com>
To:     linux-input@...r.kernel.org
Cc:     Raul E Rangel <rrangel@...omium.org>, linux-kernel@...r.kernel.org
Subject: [PATCH 0/7] libps2: be more tolerant when processing commands

Hi,

The main reason for this patch series is to deal with the case when
EC/keyboard controller has already latched a scancode in the output
buffer at the same time the host (kernel) is sending a PS/2 command to
the controller/device. The device should stop scanning (keyboard) or
sending coordinate data (mouse), and instead send acknowledge (0xfa) and
then potentially command response, but if the output buffer already
contains scancode byte it can not be substituted with an ACK byte.

The typical scenario for this is user activating a CapsLock function,
with host sending command to toggle CapsLock LED. If at the same time
the keyboard transmitting break code for the key the kernel may mistake
it for garbage command response and get confused.

To work around this scenario, instead of simply dropping the non-ACK/NAK
byte we will pass it on to atkbd/psmouse for normal processing.

In addition to the above there a couple more assorted cleanups and
fixes.

Thanks.

Dmitry Torokhov (7):
  Input: libps2 - attach ps2dev instances as serio port's drvdata
  Input: libps2 - remove special handling of ACK for command byte
  Input: libps2 - rework handling of command response
  Input: libps2 - fix NAK handling
  Input: libps2 - fix aborting PS/2 commands
  Input: libps2 - introduce common interrupt handler
  Input: libps2 - do not discard non-ack bytes when controlling LEDs

 drivers/input/keyboard/atkbd.c     |  94 ++++-----
 drivers/input/mouse/psmouse-base.c |  86 +++++----
 drivers/input/mouse/psmouse.h      |   2 +
 drivers/input/mouse/synaptics.c    |  10 +-
 drivers/input/mouse/trackpoint.c   |   2 +-
 drivers/input/serio/libps2.c       | 293 +++++++++++++++++++++--------
 include/linux/libps2.h             |  62 +++---
 7 files changed, 350 insertions(+), 199 deletions(-)

-- 
Dmitry

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ