CVE-2026-98201
NoneCVSS
—
EPSS
0.2%
Published
Oct 6, 2026
CISA due date
—
Cloudanix analysis
A programming mistake in the Linux input system can let a local user read leftover pieces of internal kernel memory that should have stayed hidden.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Low
- Impact
- Data Exposure
- Component
- OS kernel
- Class
- Information Disclosure
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The compat handler in input_ff_effect_from_user copies only the smaller ff_effect_compat prefix into a caller-provided native ff_effect struct without zeroing the remainder, leaving uninitialized kernel stack bytes that are later stored in ff->effects[] and leaked to userspace via UI_BEGIN_FF_UPLOAD.
Why it matters to the business
Attackers with local access can read fragments of kernel memory, potentially exposing sensitive data such as credentials, encryption keys, or other process information and increasing the risk of further privilege escalation or data theft on affected systems.
How an attack unfolds
A local attacker invokes EVIOCSFF ioctl through the evdev compat path with an uninitialized stack object, triggering the partial copy that retains prior stack contents; the kernel then exposes those bytes when a uinput force-feedback daemon reads the effect back.
How to fix it
Apply the upstream patch that zeros the native ff_effect structure before the compat copy; rebuild and reboot into the fixed kernel. Where immediate patching is not possible, restrict unprivileged access to input and uinput devices via device permissions or seccomp filters.
How to confirm the fix worked
Confirm the patch is present by inspecting the input_ff_effect_from_user function for an explicit zeroing of the effect structure before the compat copy_from_user call; test by exercising the compat EVIOCSFF path and verifying that no prior stack contents appear in the returned effect data.
Typical attack path
- Obtain local unprivileged access to a system running an affected kernel
- Open an input device and issue EVIOCSFF ioctl using the compat interface
- Trigger storage of the partially-initialized ff_effect structure
- Use UI_BEGIN_FF_UPLOAD to read the effect and extract leaked kernel stack bytes
How to detect it
Monitor for repeated or anomalous EVIOCSFF ioctls from unprivileged processes and for subsequent UI_BEGIN_FF_UPLOAD reads that return effect structures containing non-zero padding or recognizable kernel addresses; review audit logs for input subsystem activity and inspect uinput-using daemons for unexpected memory reads.
What your security team should do
- Prioritize kernel updates on multi-user or internet-facing Linux systems within the next maintenance window
- Audit systems for custom or third-party input/uinput drivers that may bypass the fix
- Reduce attack surface by disabling unnecessary input device access for non-root users
The record
In the Linux kernel, the following vulnerability has been resolved: Input: zero ff_effect before compat copy in input_ff_effect_from_user In the compat path input_ff_effect_from_user() aliases the caller's native struct ff_effect with the smaller struct ff_effect_compat and copies only the compat sized prefix: compat_effect = (struct ff_effect_compat *)effect; if (copy_from_user(compat_effect, buffer, sizeof(struct ff_effect_compat))) The tail of the native structure is never written. Callers pass an uninitialized on-stack object, for example evdev_do_ioctl() for EVIOCSFF, so those bytes keep their previous stack contents. input_ff_upload() then stores the full native structure in ff->effects[id], from where a uinput based force feedback daemon can read it back via UI_BEGIN_FF_UPLOAD, disclosing kernel stack memory to userspace. Zero the effect before the compat copy.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|