Your submission was sent successfully! Close

You have successfully unsubscribed! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates about Ubuntu and upcoming events where you can meet our team.Close

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

AuthorNote
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

High

Status

Package Release Status
linux
Launchpad, Ubuntu, Debian
lucid
Released (2.6.32-60.122)
precise
Released (3.2.0-63.95)
quantal Ignored
(end of life, was pending)
saucy
Released (3.11.0-22.38)
trusty
Released (3.13.0-27.50)
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)
upstream
Released (3.15~rc5)
Patches:
Introduced by

1da177e4c3f41524e886b7f1b8a0c1fc7321cac2

Fixed by ef87dbe7614341c2e7bfe8d32fcb7028cc97442c
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

utopic Does not exist

vivid Does not exist

wily Does not exist

xenial Does not exist

yakkety Does not exist

zesty Does not exist

upstream
Released (3.15~rc5)
linux-fsl-imx51
Launchpad, Ubuntu, Debian
lucid Ignored
(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-mvl-dove
Launchpad, Ubuntu, Debian
lucid Ignored
(end of life)
precise Does not exist

quantal Does not exist

saucy Does not exist

trusty Does not exist

utopic Does not exist

vivid Does not exist

wily Does not exist

xenial Does not exist

yakkety Does not exist

zesty Does not exist

upstream
Released (3.15~rc5)
linux-ti-omap4
Launchpad, Ubuntu, Debian
lucid Does not exist

precise
Released (3.2.0-1446.65)
quantal Ignored
(end of life, was pending)
saucy
Released (3.5.0-242.58)
trusty Does not exist

utopic Does not exist

vivid Does not exist

wily Does not exist

xenial Does not exist

yakkety Does not exist

zesty Does not exist

upstream
Released (3.15~rc5)
linux-armadaxp
Launchpad, Ubuntu, Debian
lucid Does not exist

precise
Released (3.2.0-1633.47)
quantal Ignored
(end of life, was pending)
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-flo
Launchpad, Ubuntu, Debian
lucid Does not exist

precise Does not exist

quantal Does not exist

saucy Does not exist

trusty Ignored
(end of life, was needed)
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-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 Ignored
(end of life, was needed)
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
(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 Ignored
(end of life)
quantal Ignored
(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

linux-linaro-shared
Launchpad, Ubuntu, Debian
lucid Does not exist

precise Ignored
(end of life)
quantal Ignored
(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

linux-linaro-vexpress
Launchpad, Ubuntu, Debian
lucid Does not exist

precise Ignored
(end of life)
quantal Ignored
(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

linux-lts-quantal
Launchpad, Ubuntu, Debian
lucid Does not exist

precise
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
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
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 Ignored
(end of life, was needed)
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 Ignored
(end of life, was needed)
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-qcm-msm
Launchpad, Ubuntu, Debian
lucid Ignored
(end of life)
precise Ignored
(end of life)
quantal Ignored
(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

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)