148 lines
5.5 KiB
Text
148 lines
5.5 KiB
Text
-----BEGIN PGP SIGNED MESSAGE-----
|
|
Hash: SHA512
|
|
|
|
=============================================================================
|
|
FreeBSD-SA-19:23.midi Security Advisory
|
|
The FreeBSD Project
|
|
|
|
Topic: kernel memory disclosure from /dev/midistat
|
|
|
|
Category: core
|
|
Module: sound
|
|
Announced: 2019-08-20
|
|
Credits: Peter Holm, Mark Johnston
|
|
Affects: All supported versions of FreeBSD.
|
|
Corrected: 2019-08-20 17:53:16 UTC (stable/12, 12.0-STABLE)
|
|
2019-08-20 17:50:33 UTC (releng/12.0, 12.0-RELEASE-p10)
|
|
2019-08-20 17:54:18 UTC (stable/11, 11.3-STABLE)
|
|
2019-08-20 17:50:33 UTC (releng/11.3, 11.3-RELEASE-p3)
|
|
2019-08-20 17:50:33 UTC (releng/11.2, 11.2-RELEASE-p14)
|
|
CVE Name: CVE-2019-5612
|
|
|
|
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/>.
|
|
|
|
0. Revision history
|
|
|
|
v1.0 2019-08-20 Initial release.
|
|
v1.1 2019-08-21 Updated workaround.
|
|
|
|
I. Background
|
|
|
|
/dev/midistat is a device file which can be read to obtain a
|
|
human-readable list of the available MIDI-capable devices in the system.
|
|
|
|
II. Problem Description
|
|
|
|
The kernel driver for /dev/midistat implements a handler for read(2).
|
|
This handler is not thread-safe, and a multi-threaded program can
|
|
exploit races in the handler to cause it to copy out kernel memory
|
|
outside the boundaries of midistat's data buffer.
|
|
|
|
III. Impact
|
|
|
|
The races allow a program to read kernel memory within a 4GB window
|
|
centered at midistat's data buffer. The buffer is allocated each
|
|
time the device is opened, so an attacker is not limited to a static
|
|
4GB region of memory.
|
|
|
|
On 32-bit platforms, an attempt to trigger the race may cause a page
|
|
fault in kernel mode, leading to a panic.
|
|
|
|
IV. Workaround
|
|
|
|
Restrict permissions on /dev/midistat by adding an entry to
|
|
/etc/devfs.conf and restarting the service:
|
|
|
|
# echo "perm midistat 0600" >> /etc/devfs.conf
|
|
# service devfs restart
|
|
|
|
Custom kernels without "device sound" are not vulnerable.
|
|
|
|
V. Solution
|
|
|
|
Upgrade your vulnerable system to a supported FreeBSD stable or
|
|
release / security branch (releng) dated after the correction date,
|
|
and reboot.
|
|
|
|
1) 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
|
|
# shutdown -r +10min "Rebooting for security update"
|
|
|
|
2) 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-19:23/midi.patch
|
|
# fetch https://security.FreeBSD.org/patches/SA-19:23/midi.patch.asc
|
|
# gpg --verify midi.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
|
|
system.
|
|
|
|
VI. Correction details
|
|
|
|
The following list contains the correction revision numbers for each
|
|
affected branch.
|
|
|
|
Branch/path Revision
|
|
- -------------------------------------------------------------------------
|
|
stable/12/ r351264
|
|
releng/12.0/ r351260
|
|
stable/11/ r351265
|
|
releng/11.3/ r351260
|
|
releng/11.2/ r351260
|
|
- -------------------------------------------------------------------------
|
|
|
|
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:
|
|
|
|
<URL:https://svnweb.freebsd.org/base?view=revision&revision=NNNNNN>
|
|
|
|
VII. References
|
|
|
|
<other info on vulnerability>
|
|
|
|
<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-5612>
|
|
|
|
The latest revision of this advisory is available at
|
|
<URL:https://security.FreeBSD.org/advisories/FreeBSD-SA-19:23.midi.asc>
|
|
-----BEGIN PGP SIGNATURE-----
|
|
|
|
iQKTBAEBCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl1d58xfFIAAAAAALgAo
|
|
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
|
|
MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
|
|
5cJ3pw//fbHMCysvmMh+2RZ47d4i9d61cdYEq51VUwT2Cp2pGz+mWAoac89c4k2v
|
|
coo+nuvsXfgNGjr6SHGjLw0kCjeJPdPBDstHLnrzqbmuUFeS8rbRS9AGySy8cW7Z
|
|
qYh8OuBPqczWRM2STtyIA1nuxrKBxpEKsWdCO41lTue/D6+1rPjFkRtzK5G/yNcJ
|
|
2gQjy8DKwX2RdUmjrWXoQbGheCKUz+euhkUOFHjiJYAdLAK4Bq+Dn/Nq36c6Dej0
|
|
wzYkeDwL+c/XxVPk1iucMJfDd+xrOi6HY4BLh4EFkJBKmQa6ciqa1B37ibARMtVb
|
|
QbGcjgoUQ1wJLxJEpD0JN5/Rbxg3KOq+8wH5if2pqW8Q9Ir89GNpbq2DjNVpBq28
|
|
1XEE0CpIJUsqZkSobkMlmwQkz4fYNm5PGkIxpVGAUUlhEpnPlHsIWX5ADhyUwS8y
|
|
qGkYWDrB7t5kn+66pwef6HOQdSA+76MdHzsb9NF+5ByvcgSqgEJqVpFs31+hAfTQ
|
|
fH+UefOm7E65GEARG8M2NUUQnMDY/GlXOaeVgbUu60FPbr3M3QlTuAZcBZZTwd+f
|
|
aDtQt4J2P33qfkJWoH4Lt5qNzcGkucFQliKZ0SI4W0IfpaqWlRTaUcaC6MZClgdN
|
|
hh/cTP3WruHVsgQKPPO1F1soFCP96cDI1LVeHiYYTLBX0n5JarQ=
|
|
=AI8Q
|
|
-----END PGP SIGNATURE-----
|