CVE-2014-1737
Published: 11 May 2014
The raw_cmd_copyin function in drivers/block/floppy.c in the Linux kernel through 3.14.3 does not properly handle error conditions during processing of an FDRAWCMD ioctl call, which allows local users to trigger kfree operations and gain privileges by leveraging write access to a /dev/fd device. First, raw_cmd_ioctl calls raw_cmd_copyin. This function kmallocs space for a floppy_raw_cmd structure and stores the resulting allocation in the "rcmd" pointer argument. It then attempts to copy_from_user the structure from userspace. If this fails, an early EFAULT return is taken. The problem is that even if the early return is taken, the pointer to the non-/partially-initialized floppy_raw_cmd structure has already been returned via the "rcmd" pointer. Back out in raw_cmd_ioctl, it attempts to raw_cmd_free this pointer. raw_cmd_free attempts to free any DMA pages allocated for the raw command, kfrees the raw command structure itself, and follows the linked list, if any, of further raw commands (a user can specify the FD_RAW_MORE flag to signal that there are more raw commands to follow in a single FDRAWCMD ioctl). So, a malicious user can send a FDRAWCMD ioctl with a raw command argument structure that has some bytes inaccessible (ie. off the end of an allocated page). The copy_from_user will fail but raw_cmd_free will attempt to process the floppy_raw_cmd as if it had been fully initialized by the rest of raw_cmd_copyin. The user can control the arguments passed to fd_dma_mem_free and kfree (by making use of the linked-list feature and specifying the target address as a next-in-list structure).
From the Ubuntu Security Team
Matthew Daley reported a flaw in the handling of ioctl commands by the floppy disk driver in the Linux kernel. An unprivileged local user could exploit this flaw to gain administrative privileges if the floppy disk module is loaded.
Notes
Author | Note |
---|---|
jdstrand | android kernels (goldfish, grouper, maguro, mako and manta) are not supported on the Ubuntu Touch 13.10 preview kernels android kernels (flo, goldfish, grouper, maguro, mako and manta) are not supported on the Ubuntu Touch 14.04 preview kernels |
Priority
Status
Package | Release | Status |
---|---|---|
linux Launchpad, Ubuntu, Debian |
lucid |
Released
(2.6.32-60.122)
|
precise |
Released
(3.2.0-63.95)
|
|
quantal |
Ignored
(was pending [3.5.0-51.76] now end-of-life)
|
|
saucy |
Released
(3.11.0-22.38)
|
|
trusty |
Released
(3.13.0-27.50)
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Not vulnerable
(3.15.0-1.5)
|
|
vivid |
Not vulnerable
(3.16.0-23.31)
|
|
wily |
Not vulnerable
(3.19.0-15.15)
|
|
xenial |
Not vulnerable
(4.2.0-16.19)
|
|
yakkety |
Not vulnerable
(4.4.0-21.37)
|
|
zesty |
Not vulnerable
(4.8.0-22.24)
|
|
Patches: Introduced by 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 |
||
linux-armadaxp Launchpad, Ubuntu, Debian |
lucid |
Does not exist
|
precise |
Does not exist
(precise was released [3.2.0-1633.47])
|
|
quantal |
Ignored
(was pending [3.5.0-1631.42] now end-of-life)
|
|
saucy |
Does not exist
|
|
trusty |
Does not exist
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Does not exist
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
This package is not directly supported by the Ubuntu Security Team | ||
linux-aws Launchpad, Ubuntu, Debian |
precise |
Does not exist
|
trusty |
Not vulnerable
(4.4.0-1002.2)
|
|
upstream |
Released
(3.15~rc5)
|
|
xenial |
Not vulnerable
(4.4.0-1001.10)
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-ec2 Launchpad, Ubuntu, Debian |
lucid |
Released
(2.6.32-364.77)
|
precise |
Does not exist
|
|
quantal |
Does not exist
|
|
saucy |
Does not exist
|
|
trusty |
Does not exist
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Does not exist
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-flo Launchpad, Ubuntu, Debian |
lucid |
Does not exist
|
precise |
Does not exist
|
|
quantal |
Does not exist
|
|
saucy |
Does not exist
|
|
trusty |
Does not exist
(trusty was ignored [was needed now end-of-life])
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Not vulnerable
(3.4.0-3.12)
|
|
vivid |
Not vulnerable
(3.4.0-3.15)
|
|
wily |
Not vulnerable
(3.4.0-4.18)
|
|
xenial |
Not vulnerable
(3.4.0-5.22)
|
|
yakkety |
Not vulnerable
(3.4.0-3.15)
|
|
zesty |
Does not exist
|
|
linux-fsl-imx51 Launchpad, Ubuntu, Debian |
lucid |
Ignored
(reached end-of-life, does not affect buildd)
|
precise |
Does not exist
|
|
quantal |
Does not exist
|
|
saucy |
Does not exist
|
|
trusty |
Does not exist
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Does not exist
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-gke Launchpad, Ubuntu, Debian |
precise |
Does not exist
|
trusty |
Does not exist
|
|
upstream |
Released
(3.15~rc5)
|
|
xenial |
Not vulnerable
(4.4.0-1003.3)
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-goldfish Launchpad, Ubuntu, Debian |
lucid |
Does not exist
|
precise |
Does not exist
|
|
quantal |
Does not exist
|
|
saucy |
Ignored
|
|
trusty |
Does not exist
(trusty was ignored [was needed now end-of-life])
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Not vulnerable
(3.4.0-3.17)
|
|
vivid |
Not vulnerable
(3.4.0-4.23)
|
|
wily |
Not vulnerable
(3.4.0-4.24)
|
|
xenial |
Not vulnerable
(3.4.0-4.27)
|
|
yakkety |
Not vulnerable
(3.4.0-4.27)
|
|
zesty |
Not vulnerable
(3.4.0-4.27)
|
|
linux-grouper Launchpad, Ubuntu, Debian |
lucid |
Does not exist
|
precise |
Does not exist
|
|
quantal |
Does not exist
|
|
saucy |
Ignored
|
|
trusty |
Does not exist
(trusty was ignored [abandoned])
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Ignored
(reached end-of-life)
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-hwe Launchpad, Ubuntu, Debian |
precise |
Does not exist
|
trusty |
Does not exist
|
|
upstream |
Released
(3.15~rc5)
|
|
xenial |
Not vulnerable
(4.8.0-36.36~16.04.1)
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-hwe-edge Launchpad, Ubuntu, Debian |
precise |
Does not exist
|
trusty |
Does not exist
|
|
upstream |
Released
(3.15~rc5)
|
|
xenial |
Not vulnerable
(4.8.0-36.36~16.04.1)
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-linaro-omap Launchpad, Ubuntu, Debian |
lucid |
Does not exist
|
precise |
Does not exist
(precise was ignored [abandoned])
|
|
quantal |
Ignored
(abandoned)
|
|
saucy |
Does not exist
|
|
trusty |
Does not exist
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Does not exist
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-linaro-shared Launchpad, Ubuntu, Debian |
lucid |
Does not exist
|
precise |
Does not exist
(precise was ignored [abandoned])
|
|
quantal |
Ignored
(abandoned)
|
|
saucy |
Does not exist
|
|
trusty |
Does not exist
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Does not exist
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-linaro-vexpress Launchpad, Ubuntu, Debian |
lucid |
Does not exist
|
precise |
Does not exist
(precise was ignored [abandoned])
|
|
quantal |
Ignored
(abandoned)
|
|
saucy |
Does not exist
|
|
trusty |
Does not exist
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Does not exist
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-lts-quantal Launchpad, Ubuntu, Debian |
lucid |
Does not exist
|
precise |
Does not exist
(precise was released [3.5.0-51.76~precise1])
|
|
quantal |
Does not exist
|
|
saucy |
Does not exist
|
|
trusty |
Does not exist
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Does not exist
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-lts-raring Launchpad, Ubuntu, Debian |
lucid |
Does not exist
|
precise |
Does not exist
(precise was released [3.8.0-41.60~precise1])
|
|
quantal |
Does not exist
|
|
saucy |
Does not exist
|
|
trusty |
Does not exist
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Does not exist
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-lts-saucy Launchpad, Ubuntu, Debian |
lucid |
Does not exist
|
precise |
Does not exist
(precise was released [3.11.0-22.38~precise1])
|
|
quantal |
Does not exist
|
|
saucy |
Does not exist
|
|
trusty |
Does not exist
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Does not exist
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-lts-trusty Launchpad, Ubuntu, Debian |
lucid |
Does not exist
|
precise |
Released
(3.13.0-27.50~precise1)
|
|
quantal |
Does not exist
|
|
saucy |
Does not exist
|
|
trusty |
Does not exist
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Does not exist
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-lts-utopic Launchpad, Ubuntu, Debian |
lucid |
Does not exist
|
precise |
Does not exist
|
|
trusty |
Does not exist
(trusty was not-affected [3.16.0-25.33~14.04.2])
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Does not exist
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-lts-vivid Launchpad, Ubuntu, Debian |
lucid |
Does not exist
|
precise |
Does not exist
|
|
trusty |
Does not exist
(trusty was not-affected [3.19.0-18.18~14.04.1])
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Does not exist
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-lts-wily Launchpad, Ubuntu, Debian |
precise |
Does not exist
|
trusty |
Does not exist
(trusty was not-affected [4.2.0-18.22~14.04.1])
|
|
upstream |
Released
(3.15~rc5)
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-lts-xenial Launchpad, Ubuntu, Debian |
precise |
Does not exist
|
trusty |
Not vulnerable
(4.4.0-13.29~14.04.1)
|
|
upstream |
Released
(3.15~rc5)
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-maguro Launchpad, Ubuntu, Debian |
lucid |
Does not exist
|
precise |
Does not exist
|
|
quantal |
Does not exist
|
|
saucy |
Ignored
|
|
trusty |
Does not exist
(trusty was ignored [abandoned])
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Does not exist
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-mako Launchpad, Ubuntu, Debian |
lucid |
Does not exist
|
precise |
Does not exist
|
|
quantal |
Does not exist
|
|
saucy |
Ignored
|
|
trusty |
Does not exist
(trusty was ignored [was needed now end-of-life])
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Not vulnerable
(3.4.0-5.31)
|
|
vivid |
Not vulnerable
(3.4.0-5.34)
|
|
wily |
Not vulnerable
(3.4.0-6.37)
|
|
xenial |
Not vulnerable
(3.4.0-7.40)
|
|
yakkety |
Not vulnerable
(3.4.0-5.34)
|
|
zesty |
Does not exist
|
|
linux-manta Launchpad, Ubuntu, Debian |
lucid |
Does not exist
|
precise |
Does not exist
|
|
quantal |
Does not exist
|
|
saucy |
Ignored
|
|
trusty |
Does not exist
(trusty was ignored [was needed now end-of-life])
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Not vulnerable
(3.4.0-6.27)
|
|
vivid |
Not vulnerable
(3.4.0-6.29)
|
|
wily |
Not vulnerable
(3.4.0-7.32)
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-mvl-dove Launchpad, Ubuntu, Debian |
lucid |
Ignored
(reached end-of-life)
|
precise |
Does not exist
|
|
quantal |
Does not exist
|
|
saucy |
Does not exist
|
|
trusty |
Does not exist
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Does not exist
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-qcm-msm Launchpad, Ubuntu, Debian |
lucid |
Ignored
(abandoned)
|
precise |
Does not exist
(precise was ignored [abandoned])
|
|
quantal |
Ignored
(abandoned)
|
|
saucy |
Does not exist
|
|
trusty |
Does not exist
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Does not exist
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
|
linux-raspi2 Launchpad, Ubuntu, Debian |
precise |
Does not exist
|
trusty |
Does not exist
|
|
upstream |
Released
(3.15~rc5)
|
|
vivid |
Does not exist
|
|
wily |
Not vulnerable
(4.2.0-1008.12)
|
|
xenial |
Not vulnerable
(4.2.0-1013.19)
|
|
yakkety |
Not vulnerable
(4.4.0-1009.10)
|
|
zesty |
Not vulnerable
(4.8.0-1013.15)
|
|
linux-snapdragon Launchpad, Ubuntu, Debian |
precise |
Does not exist
|
trusty |
Does not exist
|
|
upstream |
Released
(3.15~rc5)
|
|
wily |
Does not exist
|
|
xenial |
Not vulnerable
(4.4.0-1012.12)
|
|
yakkety |
Not vulnerable
(4.4.0-1012.12)
|
|
zesty |
Not vulnerable
(4.4.0-1029.32)
|
|
linux-ti-omap4 Launchpad, Ubuntu, Debian |
lucid |
Does not exist
|
precise |
Does not exist
(precise was released [3.2.0-1446.65])
|
|
quantal |
Ignored
(was pending [3.5.0-242.58] now end-of-life)
|
|
saucy |
Released
(3.5.0-242.58)
|
|
trusty |
Does not exist
|
|
upstream |
Released
(3.15~rc5)
|
|
utopic |
Does not exist
|
|
vivid |
Does not exist
|
|
wily |
Does not exist
|
|
xenial |
Does not exist
|
|
yakkety |
Does not exist
|
|
zesty |
Does not exist
|
References
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1737
- https://ubuntu.com/security/notices/USN-2219-1
- https://ubuntu.com/security/notices/USN-2220-1
- https://ubuntu.com/security/notices/USN-2221-1
- https://ubuntu.com/security/notices/USN-2223-1
- https://ubuntu.com/security/notices/USN-2224-1
- https://ubuntu.com/security/notices/USN-2225-1
- https://ubuntu.com/security/notices/USN-2226-1
- https://ubuntu.com/security/notices/USN-2227-1
- https://ubuntu.com/security/notices/USN-2228-1
- https://ubuntu.com/security/notices/USN-2260-1
- NVD
- Launchpad
- Debian