All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Input: fix two kernel stack disclosures via ioctl
@ 2026-09-01 13:06 Iván Ezequiel Rodriguez
  2026-09-01 13:06 ` [PATCH 1/2] Input: evdev: zero absinfo before partial copy in EVIOCSABS Iván Ezequiel Rodriguez
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Iván Ezequiel Rodriguez @ 2026-09-01 13:06 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: linux-input, linux-kernel, stable, Iván Ezequiel Rodriguez

Two places in the input layer copy a user supplied, possibly short
buffer into an uninitialized on-stack structure and then keep the whole
structure, including the part that was never written. In both cases the
stale stack bytes can be read back from userspace.

Patch 1: EVIOCSABS copies min(_IOC_SIZE(cmd), sizeof(struct
input_absinfo)) bytes into an uninitialized struct and stores the result
in dev->absinfo[]. EVIOCGABS returns it. Only the resolution field is
currently cleared for short sizes.

Patch 2: the compat path of input_ff_effect_from_user() aliases the
native struct ff_effect with the smaller struct ff_effect_compat and
copies only the compat sized prefix, leaving the tail untouched.
input_ff_upload() stores the full structure, which a uinput based force
feedback daemon can read back via UI_BEGIN_FF_UPLOAD.

Both are fixed by zeroing the structure before the copy. The patches are
independent of each other.

Compile tested on x86_64 with CONFIG_INPUT_EVDEV, CONFIG_INPUT_UINPUT
and CONFIG_IA32_EMULATION enabled.

Iván Ezequiel Rodriguez (2):
  Input: evdev: zero absinfo before partial copy in EVIOCSABS
  Input: zero ff_effect before compat copy in input_ff_effect_from_user

 drivers/input/evdev.c        | 2 ++
 drivers/input/input-compat.c | 2 ++
 2 files changed, 4 insertions(+)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-09-01 14:39 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-01 13:06 [PATCH 0/2] Input: fix two kernel stack disclosures via ioctl Iván Ezequiel Rodriguez
2026-09-01 13:06 ` [PATCH 1/2] Input: evdev: zero absinfo before partial copy in EVIOCSABS Iván Ezequiel Rodriguez
2026-09-01 13:06 ` [PATCH 2/2] Input: zero ff_effect before compat copy in input_ff_effect_from_user Iván Ezequiel Rodriguez
2026-09-01 14:38 ` [PATCH 0/2] Input: fix two kernel stack disclosures via ioctl Dmitry Torokhov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.