Home    |    View Topics    |    Search    |    Contact Us    |   



Category:   OS (UNIX)  >   FreeBSD Kernel Vendors:   FreeBSD
FreeBSD Buffer Overflow in Keyboard Driver Lets Local Users Gain Elevated Privileges
SecurityTracker Alert ID:  1035905
SecurityTracker URL:
CVE Reference:   CVE-2016-1886   (Links to External Site)
Date:  May 18 2016
Impact:   Root access via local system
Fix Available:  Yes  Vendor Confirmed:  Yes  
Version(s): 9.3, 10.1, 10.2, 10.3
Description:   A vulnerability was reported in the FreeBSD Kernel. A local user can obtain elevated privileges on the target system.

A local user can issue a specially crafted IOCTL command to trigger a buffer overflow in the atkbd(4) and execute arbitrary code on the target system with kernel-level privileges.

CTurt and the HardenedBSD team reported this vulnerability.

Impact:   A local user can obtain elevated privileges on the target system.
Solution:   FreeBSD has issued a fix.

The FreeBSD advisory is available at:

Vendor URL: (Links to External Site)
Cause:   Boundary error

Message History:   This archive entry has one or more follow-up message(s) listed below.
Apr 13 2017 (Juniper Issues Fix for Juniper Junos) FreeBSD Buffer Overflow in Keyboard Driver Lets Local Users Gain Elevated Privileges
Juniper has issued a fix for Juniper Junos.

 Source Message Contents

Subject:  FreeBSD Security Advisory FreeBSD-SA-16:18.atkbd

Hash: SHA512

FreeBSD-SA-16:18.atkbd	                                    Security Advisory
                                                          The FreeBSD Project

Topic:          Buffer overflow in keyboard driver

Category:       core
Module:         atkbd
Announced:      2016-05-17
Credits:        CTurt and the HardenedBSD team
Affects:        All supported versions of FreeBSD.
Corrected:      2016-05-17 22:29:59 UTC (stable/10, 10.3-STABLE)
                2016-05-17 22:28:27 UTC (releng/10.3, 10.3-RELEASE-p3)
                2016-05-17 22:28:20 UTC (releng/10.2, 10.2-RELEASE-p17)
                2016-05-17 22:28:11 UTC (releng/10.1, 10.1-RELEASE-p34)
                2016-05-17 22:31:12 UTC (stable/9, 9.3-STABLE)
                2016-05-17 22:28:36 UTC (releng/9.3, 9.3-RELEASE-p42)
CVE Name:       CVE-2016-1886

For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit <URL:>.

I.   Background

The atkbd(4) driver, together with the atkbdc(4) driver, provides access
to the AT 84 keyboard or the AT enhanced keyboard which is connected to
the AT keyboard controller.  The driver is required for the console driver
syscons(4) or vt(4).  The driver exposes its own ioctl(2) interface to allow
it to be configured from userland through the kbdcontrol(1) utility.

II.  Problem Description

Incorrect signedness comparison in the ioctl(2) handler allows a malicious
local user to overwrite a portion of the kernel memory.

III. Impact

A local user may crash the kernel, read a portion of kernel memory and
execute arbitrary code in kernel context.  The result of executing an
arbitrary kernel code is privilege escalation.

IV.  Workaround

Disallow keymap changes for non-privileged users:

sysctl hw.kbd.keymap_restrict_change=4

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
# fetch
# gpg --verify atkbd.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:> and reboot the

VI.  Correction details

The following list contains the correction revision numbers for each
affected branch.

Branch/path                                                      Revision
- -------------------------------------------------------------------------
stable/9/                                                         r300093
releng/9.3/                                                       r300088
stable/10/                                                        r300091
releng/10.1/                                                      r300085
releng/10.2/                                                      r300086
releng/10.3/                                                      r300087
- -------------------------------------------------------------------------

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://

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


VII. References


The latest revision of this advisory is available at


Go to the Top of This SecurityTracker Archive Page

Home   |    View Topics   |    Search   |    Contact Us

This web site uses cookies for web analytics. Learn More

Copyright 2021, LLC