libinput 1.29-rc3 (1.28.903) is now available.

*This release fixes key codes being logged as part of the debug log output.*
Note that only a few users will have been affected by this, see the details
below.

Affected are libinput commits 7137eb9702f1 (May 29) and newer, including
1.29-rc1 (1.28.901) and 1.29-rc2 (1.28.902).

The 1.28.x releases and earlier are not affected.

Due to a mixup of #if and #ifdef the meson "internal-event-debugging" option was
always interpreted as true and all evdev events were printed as part of the
debug log output. Since those include the keyboard key codes, this may
result in sensitive data such as passwords ending up in the logs.

These events were printed at the DEBUG priority level and discarded wherever
the level was set to anything higher (the default is INFO). So users are only
affected where debug printing was enabled.

A check of the git repositories of the more common compositors shows:
- kwin: possibly affected.
  kwin always enables debug logging via libinput_log_set_priority() but passes
  the log messages to qCDebug(KWIN_LIBINPUT). Unless you have enabled the
  "kwin_libinput" log category the messages should have been discarded.
- mutter: not affected
  mutter does not call libinput_log_set_priority() and thus defaults to INFO,
  debug logging is thus not enabled
- wlroots: not affected
  wlroots calls libinput_log_set_priority(ERROR), debug logging is thus not
  enabled
- Xorg via xf86-input-libinput: possibly affected
  The xf86-input-libinput always enables debug logging and passes the messages 
with
  verbosity X_DEBUG to the server. This is filtered by the server unless
  --verbose 10 or --logverbose 10 or higher was given by the user (the default
  for both is 3).

If you use a compositor other than the above, check if
libinput_log_set_priority() enables debug logging and if so whether those logs
are filtered elsewhere.

If you have recently used libinput debug-events --verbose on a keyboard device
and posted those online, double-check those recordings and change your secrets
accordingly. libinput record output is not affected, libinput debug-events
without the --verbose flag is also not affected.

The issue has been fixed in this RC and, in addition, keycodes that fall into
the (roughly) alphanumeric range are now obfuscated to only print as KEY_A.
Unless your password is a multiple of 'a', this prevents leakage even where
the debug option is enabled.

As usual, the git shortlog is below.

Peter Hutterer (7):
      test: fix litest_assert_str_not_in
      test: a skipped test does not count as failure
      plugin/evdev: drop the duplicate event frame printing
      plugin: prevent potential keycode leakage to the logs
      plugin: always obfuscate keycodes
      libinput: obfuscate the keycodes in the "Queuing ..." debug log
      libinput 1.28.903

Attachment: signature.asc
Description: PGP signature

Reply via email to