CVE-2012-6704

Publication date 28 December 2016

Last updated 24 July 2024


Ubuntu priority

Cvss 3 Severity Score

7.8 · High

Score breakdown

The sock_setsockopt function in net/core/sock.c in the Linux kernel before 3.5 mishandles negative values of sk_sndbuf and sk_rcvbuf, which allows local users to cause a denial of service (memory corruption and system crash) or possibly have unspecified other impact by leveraging the CAP_NET_ADMIN capability for a crafted setsockopt system call with the (1) SO_SNDBUF or (2) SO_RCVBUF option.

Read the notes from the security team

Status

Package Ubuntu Release Status
linux 17.04 zesty
Not affected
16.10 yakkety
Not affected
16.04 LTS xenial
Not affected
14.04 LTS trusty
Not affected
12.04 LTS precise Ignored end of life
linux-armadaxp 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial Not in release
14.04 LTS trusty Not in release
12.04 LTS precise Ignored end of life
linux-aws 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial
Not affected
14.04 LTS trusty
Not affected
12.04 LTS precise Not in release
linux-flo 17.04 zesty Not in release
16.10 yakkety Ignored end of life
16.04 LTS xenial Ignored abandoned
14.04 LTS trusty Not in release
12.04 LTS precise Not in release
linux-gke 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial
Not affected
14.04 LTS trusty Not in release
12.04 LTS precise Not in release
linux-goldfish 17.04 zesty Ignored end of life
16.10 yakkety Ignored end of life
16.04 LTS xenial Ignored abandoned
14.04 LTS trusty Not in release
12.04 LTS precise Not in release
linux-grouper 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial Not in release
14.04 LTS trusty Not in release
12.04 LTS precise Not in release
linux-hwe 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial
Not affected
14.04 LTS trusty Not in release
12.04 LTS precise Not in release
linux-hwe-edge 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial
Not affected
14.04 LTS trusty Not in release
12.04 LTS precise Not in release
linux-linaro-omap 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial Not in release
14.04 LTS trusty Not in release
12.04 LTS precise Ignored end of life
linux-linaro-shared 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial Not in release
14.04 LTS trusty Not in release
12.04 LTS precise Ignored end of life
linux-linaro-vexpress 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial Not in release
14.04 LTS trusty Not in release
12.04 LTS precise Ignored end of life
linux-lts-quantal 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial Not in release
14.04 LTS trusty Not in release
12.04 LTS precise Ignored end of life
linux-lts-raring 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial Not in release
14.04 LTS trusty Not in release
12.04 LTS precise Ignored end of life
linux-lts-saucy 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial Not in release
14.04 LTS trusty Not in release
12.04 LTS precise Ignored end of life
linux-lts-trusty 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial Not in release
14.04 LTS trusty Not in release
12.04 LTS precise
Not affected
linux-lts-utopic 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial Not in release
14.04 LTS trusty Not in release
12.04 LTS precise Not in release
linux-lts-vivid 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial Not in release
14.04 LTS trusty Not in release
12.04 LTS precise Not in release
linux-lts-wily 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial Not in release
14.04 LTS trusty Not in release
12.04 LTS precise Not in release
linux-lts-xenial 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial Not in release
14.04 LTS trusty
Not affected
12.04 LTS precise Not in release
linux-maguro 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial Not in release
14.04 LTS trusty Not in release
12.04 LTS precise Not in release
linux-mako 17.04 zesty Not in release
16.10 yakkety Ignored end of life
16.04 LTS xenial Ignored abandoned
14.04 LTS trusty Not in release
12.04 LTS precise Not in release
linux-manta 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial Not in release
14.04 LTS trusty Not in release
12.04 LTS precise Not in release
linux-qcm-msm 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial Not in release
14.04 LTS trusty Not in release
12.04 LTS precise Ignored end of life
linux-raspi2 17.04 zesty
Not affected
16.10 yakkety
Not affected
16.04 LTS xenial
Not affected
14.04 LTS trusty Not in release
12.04 LTS precise Not in release
linux-snapdragon 17.04 zesty
Not affected
16.10 yakkety
Not affected
16.04 LTS xenial
Not affected
14.04 LTS trusty Not in release
12.04 LTS precise Not in release
linux-ti-omap4 17.04 zesty Not in release
16.10 yakkety Not in release
16.04 LTS xenial Not in release
14.04 LTS trusty Not in release
12.04 LTS precise Ignored end of life

Notes


sbeattie

it's not possible to exploit this via unprivileged SO_SNDBUF/SO_RCVBUF setsockopt() calls, as passing a signed value that is negative but when multiplied by 2 turns positive first gets compared against the unsigned int sysctl_wmem_max value to see if its larger than that. Because sysctl_wmem_max is unsigned, the compiler treats the value passed as unsigned, and thus a "negative" value turns into a large positive value, and runs afoul of this check.

Patch details

For informational purposes only. We recommend not to cherry-pick updates. How can I get the fixes?

Package Patch details
linux

Severity score breakdown

Parameter Value
Base score 7.8 · High
Attack vector Local
Attack complexity Low
Privileges required Low
User interaction None
Scope Unchanged
Confidentiality High
Integrity impact High
Availability impact High
Vector CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H