Bugtraq: FreeBSD Security Advisory FreeBSD-SA-16:20.linux


Hash: SHA512



FreeBSD-SA-16:20.linux Security Advisory

The FreeBSD Project

Topic: Kernel stack disclosure in Linux compatibility layer

Category: core

Module: linux(4)

Announced: 2016-05-31

Credits: CTurt

Affects: All supported versions of FreeBSD.

Corrected: 2016-05-31 16:57:42 UTC (stable/10, 10.3-STABLE)

2016-05-31 16:55:50 UTC (releng/10.3, 10.3-RELEASE-p4)

2016-05-31 16:55:45 UTC (releng/10.2, 10.2-RELEASE-p18)

2016-05-31 16:55:41 UTC (releng/10.1, 10.1-RELEASE-p35)

2016-05-31 16:58:00 UTC (stable/9, 9.3-STABLE)

2016-05-31 16:55:37 UTC (releng/9.3, 9.3-RELEASE-p43)

For general information regarding FreeBSD Security Advisories,

including descriptions of the fields above, security branches, and the

following sections, please visit <URL:https://security.FreeBSD.org/>.

I. Background

FreeBSD is binary-compatible with the Linux operating system through a

loadable kernel module/optional kernel component. The support is provided

for amd64 and i386 machines.

II. Problem Description

The implementation of the TIOCGSERIAL ioctl(2) does not clear the output

struct before copying it out to userland.

The implementation of the Linux sysinfo() system call does not clear the

output struct before copying it out to userland.

III. Impact

An unprivileged user can read a portion of uninitialised kernel stack data,

which may contain sensitive information, such as the stack guard, portions

of the file cache or terminal buffers, which an attacker might leverage to

obtain elevated privileges.

IV. Workaround

No workaround is available, but systems not using the Linux binary

compatibility layer are not vulnerable.

The Linux compatibility layer is not included in the default GENERIC kernel.

The following command can be used to test if the Linux binary compatibility

layer is loaded:

# kldstat -m linuxelf

V. Solution

Perform one of the following:

1) Upgrade your vulnerable system to a supported FreeBSD stable or

release / security branch (releng) dated after the correction date.

Reboot is required.

2) To update your vulnerable system via a binary patch:

Systems running a RELEASE version of FreeBSD on the i386 or amd64

platforms can be updated via the freebsd-update(8) utility:

# freebsd-update fetch

# freebsd-update install

Reboot is required.

3) To update your vulnerable system via a source code patch:

The following patches have been verified to apply to the applicable

FreeBSD release branches.

a) Download the relevant patch from the location below, and verify the

detached PGP signature using your PGP utility.

# fetch https://security.FreeBSD.org/patches/SA-16:20/linux.patch

# fetch https://security.FreeBSD.org/patches/SA-16:20/linux.patch.asc

# gpg –verify linux.patch.asc

b) Apply the patch. Execute the following commands as root:

# cd /usr/src

# patch < /path/to/patch

c) Recompile your kernel as described in

<URL:https://www.FreeBSD.org/handbook/kernelconfig.html> and reboot the


VI. Correction details

The following list contains the correction revision numbers for each

affected branch.

Branch/path Revision

– ————————————————————————

stable/9/ r301055

releng/9.3/ r301049

stable/10/ r301054

releng/10.1/ r301050

releng/10.2/ r301051

releng/10.3/ r301052

– ————————————————————————

To see which files were modified by a particular revision, run the

following command, replacing NNNNNN with the revision number, on a

machine with Subversion installed:

# svn diff -cNNNNNN –summarize svn://svn.freebsd.org/base

Or visit the following URL, replacing NNNNNN with the revision number:


VII. References


The latest revision of this advisory is available at

















[ reply ]

Source: SecurityFocus Vulnerabilities @ May 31, 2016 at 03:05PM