Linux: Input: zero ff_effect before compat copy in input_ff_effect_from_user
What fixes it
- 6c26681c5668c973bd0e951407d670ac60d9cd66LinuxCVE List
- 0d05b43b55d4784a42ce8fb318175f8ad7d9af5aLinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
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.
Text from CVE List
Affected versions 18
- Linuxaffected: 2d56f3a32c0e62f99c043d2579840f9731fe5855 before ed0905fda39682d3da7937184397d3276abbffa8CVE List
- Linuxaffected: 2d56f3a32c0e62f99c043d2579840f9731fe5855 before ec174c2ab1abb76b20fa167c6db848c3d97aa838CVE List
- Linuxaffected: 2d56f3a32c0e62f99c043d2579840f9731fe5855 before 6c26681c5668c973bd0e951407d670ac60d9cd66CVE List
- Linuxaffected: 2d56f3a32c0e62f99c043d2579840f9731fe5855 before c5e573bb095d502be7cbbaa99c26a20984111c6dCVE List
- Linuxaffected: 2d56f3a32c0e62f99c043d2579840f9731fe5855 before b878720e8bcaa4cf7163a5081f904dd6baf11b2cCVE List
- Linuxaffected: 2d56f3a32c0e62f99c043d2579840f9731fe5855 before 0d05b43b55d4784a42ce8fb318175f8ad7d9af5aCVE List
- Linuxaffected: 2d56f3a32c0e62f99c043d2579840f9731fe5855 before ed0406e490f48ed180df140fe2a81be26bccb1a9CVE List
- Linuxaffected: 2d56f3a32c0e62f99c043d2579840f9731fe5855 before f84819ef8d66931ee3998fee3c4f03230f4cb6ccCVE List
- Linuxaffected: 2.6.29CVE List
- Linuxunaffected: all versions before 2.6.29CVE List
- Linuxunaffected: 5.10.271 through 5.10.*CVE List
- Linuxunaffected: 5.15.222 through 5.15.*CVE List
- Linuxunaffected: 6.1.189 through 6.1.*CVE List
- Linuxunaffected: 6.6.158 through 6.6.*CVE List
- Linuxunaffected: 6.12.112 through 6.12.*CVE List
- Linuxunaffected: 6.18.54 through 6.18.*CVE List
- Linuxunaffected: 7.2.8 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 8
- git.kernel.org/stable/c/ed0905fda39682d3da7937184397d3276abbffa8Referencevia CVE List
- git.kernel.org/stable/c/ec174c2ab1abb76b20fa167c6db848c3d97aa838Referencevia CVE List
- git.kernel.org/stable/c/6c26681c5668c973bd0e951407d670ac60d9cd66Referencevia CVE List
- git.kernel.org/stable/c/c5e573bb095d502be7cbbaa99c26a20984111c6dReferencevia CVE List
- git.kernel.org/stable/c/b878720e8bcaa4cf7163a5081f904dd6baf11b2cReferencevia CVE List
- git.kernel.org/stable/c/0d05b43b55d4784a42ce8fb318175f8ad7d9af5aReferencevia CVE List
- git.kernel.org/stable/c/ed0406e490f48ed180df140fe2a81be26bccb1a9Referencevia CVE List
- git.kernel.org/stable/c/f84819ef8d66931ee3998fee3c4f03230f4cb6ccReferencevia CVE List