Add SA-20:27 to SA-20:30.
Approved by: so
This commit is contained in:
parent
6b7473e71a
commit
a83b2ae035
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=54498
15 changed files with 921 additions and 0 deletions
149
share/security/advisories/FreeBSD-SA-20:27.ure.asc
Normal file
149
share/security/advisories/FreeBSD-SA-20:27.ure.asc
Normal file
|
|
@ -0,0 +1,149 @@
|
||||||
|
-----BEGIN PGP SIGNED MESSAGE-----
|
||||||
|
Hash: SHA512
|
||||||
|
|
||||||
|
=============================================================================
|
||||||
|
FreeBSD-SA-20:27.ure Security Advisory
|
||||||
|
The FreeBSD Project
|
||||||
|
|
||||||
|
Topic: ure device driver susceptible to packet-in-packet attack
|
||||||
|
|
||||||
|
Category: core
|
||||||
|
Module: ure
|
||||||
|
Announced: 2020-09-15
|
||||||
|
Credits: John-Mark Gurney
|
||||||
|
Affects: All supported versions of FreeBSD.
|
||||||
|
Corrected: 2020-09-14 19:39:43 UTC (stable/12, 12.2-STABLE)
|
||||||
|
2020-09-15 21:42:05 UTC (releng/12.2, 12.2-BETA1-p1)
|
||||||
|
2020-09-15 21:42:05 UTC (releng/12.1, 12.1-RELEASE-p10)
|
||||||
|
2020-09-15 00:22:30 UTC (stable/11, 11.4-STABLE)
|
||||||
|
2020-09-15 21:42:05 UTC (releng/11.4, 11.4-RELEASE-p4)
|
||||||
|
2020-09-15 21:42:05 UTC (releng/11.3, 11.3-RELEASE-p14)
|
||||||
|
CVE Name: CVE-2020-7464
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
The ure(4) driver provides support for USB Ethernet adapters based on the
|
||||||
|
Realtek RTL8152 and RTL8153 USB Ethernet controllers.
|
||||||
|
|
||||||
|
II. Problem Description
|
||||||
|
|
||||||
|
A programming error in the ure(4) device driver caused some Realtek USB
|
||||||
|
Ethernet interfaces to incorrectly report packets with more than 2048 bytes
|
||||||
|
in a single USB transfer as having a length of only 2048 bytes.
|
||||||
|
|
||||||
|
An adversary can exploit this to cause the driver to misinterpret part of the
|
||||||
|
payload of a large packet as a separate packet, and thereby inject packets
|
||||||
|
across security boundaries such as VLANs.
|
||||||
|
|
||||||
|
III. Impact
|
||||||
|
|
||||||
|
An attacker that can send large frames (larger than 2048 bytes in size) to be
|
||||||
|
received by the host (be it VLAN, or non-VLAN tagged packet), can inject
|
||||||
|
arbitrary packets to be received and processed by the host. This includes
|
||||||
|
spoofing packets from other hosts, or injecting packets to other VLANs than
|
||||||
|
the host is on.
|
||||||
|
|
||||||
|
IV. Workaround
|
||||||
|
|
||||||
|
No workaround is available. However, an attacker needs to be able to inject
|
||||||
|
large frames. If a switch can prevent large frames (>2048 bytes) from being
|
||||||
|
received, or connecting the machine to a switch that does not forward large
|
||||||
|
frames will mitigate this attack.
|
||||||
|
|
||||||
|
V. Solution
|
||||||
|
|
||||||
|
Upgrade your vulnerable system to a supported FreeBSD stable or
|
||||||
|
release / security branch (releng) dated after the correction date,
|
||||||
|
and reboot.
|
||||||
|
|
||||||
|
Perform one of the following:
|
||||||
|
|
||||||
|
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 a 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.
|
||||||
|
|
||||||
|
[FreeBSD 12.1, FreeBSD 12.2]
|
||||||
|
# fetch https://security.FreeBSD.org/patches/SA-20:27/ure.12.patch
|
||||||
|
# fetch https://security.FreeBSD.org/patches/SA-20:27/ure.12.patch.asc
|
||||||
|
# gpg --verify ure.12.patch.asc
|
||||||
|
|
||||||
|
[FreeBSD 11.3, FreeBSD 11.4]
|
||||||
|
# fetch https://security.FreeBSD.org/patches/SA-20:27/ure.11.patch
|
||||||
|
# fetch https://security.FreeBSD.org/patches/SA-20:27/ure.11.patch.asc
|
||||||
|
# gpg --verify ure.11.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/ r365730
|
||||||
|
releng/12.2/ r365778
|
||||||
|
releng/12.1/ r365778
|
||||||
|
stable/11/ r365738
|
||||||
|
releng/11.4/ r365778
|
||||||
|
releng/11.3/ r365778
|
||||||
|
- -------------------------------------------------------------------------
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-7464>
|
||||||
|
|
||||||
|
The latest revision of this advisory is available at
|
||||||
|
<URL:https://security.FreeBSD.org/advisories/FreeBSD-SA-20:27.ure.asc>
|
||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQKTBAEBCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl9hOIxfFIAAAAAALgAo
|
||||||
|
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
|
||||||
|
MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
|
||||||
|
5cJY9A//Z+Rt20iUnM79er+CYF4EQNrzR8dOKr2/6L5ho5L1kJt0MdZtamN+f5Bq
|
||||||
|
Jpzem060oAv+0mgAiK3VR7unlkEk+wFNvMwhgItvI8l2TME3+n/A0nsYQkP9QPPp
|
||||||
|
SwHmKcIAbwkdtv913zy7AGc/vE+2+D8x84WHp6WDhRmDVgU5QAPGgP4yv0qhgkpy
|
||||||
|
L8ndLDte3tXMk0eWArxWTpMfxqKGmp9Cgy88QRoIpguazS+ocSVt6h3emxQPtTc/
|
||||||
|
7SQOEqjg4IiEXW/t2SSDqB1cvNPmN82yJt4mQg1m8v/SjFjFQ2qgFC+47cYezI1F
|
||||||
|
nLuoDw16kYUu65DyePiXfCsBwSjkLU1IgpBSgmmxjMzwoVgE7/9AtRqiCwe2xkEF
|
||||||
|
E6c1VWAQAw2AiZmsISv8T9RNLegLnNjyhO9iSsaeuOfLbTIeQ9zbcUL6xgZB6AxO
|
||||||
|
tk/fkt+NHwuRoXNx2SC959r+hwhdnrpgxTEphjCFuuMdMGKsxm3TQGdwD6ZvQ1r2
|
||||||
|
HkVV1m4ukgpxw8ONa88Lgo+2f1HZhZKWLzp3EsTA3LMpgk+5uJjIuL/ctuddscWY
|
||||||
|
Do9VapPTIGxjZqABGtxJL7NrzCz2pXE0CHzAjFWD830kujgcdihe6FbJx0cJe3m8
|
||||||
|
+CxaGBXvSINHyPwgDArnKR3Hrd57/T6RSUWqsksB7fBCpmFdQaI=
|
||||||
|
=S9sW
|
||||||
|
-----END PGP SIGNATURE-----
|
||||||
137
share/security/advisories/FreeBSD-SA-20:28.bhyve_vmcs.asc
Normal file
137
share/security/advisories/FreeBSD-SA-20:28.bhyve_vmcs.asc
Normal file
|
|
@ -0,0 +1,137 @@
|
||||||
|
-----BEGIN PGP SIGNED MESSAGE-----
|
||||||
|
Hash: SHA512
|
||||||
|
|
||||||
|
=============================================================================
|
||||||
|
FreeBSD-SA-20:28.bhyve_vmcs Security Advisory
|
||||||
|
The FreeBSD Project
|
||||||
|
|
||||||
|
Topic: bhyve privilege escalation via VMCS access
|
||||||
|
|
||||||
|
Category: core
|
||||||
|
Module: bhyve
|
||||||
|
Announced: 2020-09-15
|
||||||
|
Credits: Patrick Mooney
|
||||||
|
Affects: All supported versions of FreeBSD.
|
||||||
|
Corrected: 2020-09-15 21:28:47 UTC (stable/12, 12.2-STABLE)
|
||||||
|
2020-09-15 21:43:41 UTC (releng/12.2, 12.2-BETA1-p1)
|
||||||
|
2020-09-15 21:43:41 UTC (releng/12.1, 12.1-RELEASE-p10)
|
||||||
|
2020-09-15 21:28:47 UTC (stable/11, 11.4-STABLE)
|
||||||
|
2020-09-15 21:43:41 UTC (releng/11.4, 11.4-RELEASE-p4)
|
||||||
|
2020-09-15 21:43:41 UTC (releng/11.3, 11.3-RELEASE-p14)
|
||||||
|
CVE Name: CVE-2020-24718
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
bhyve(8) is a hypervisor that supports running a variety of guest operating
|
||||||
|
systems in virtual machines on AMD and Intel CPUs.
|
||||||
|
|
||||||
|
II. Problem Description
|
||||||
|
|
||||||
|
AMD and Intel CPUs support hardware virtualization using specialized data
|
||||||
|
structures that control various aspects of guest operation. These are the
|
||||||
|
Virtual Machine Control Structure (VMCS) on Intel CPUs, and the Virtual
|
||||||
|
Machine Control Block (VMCB) on AMD CPUs. Insufficient access controls allow
|
||||||
|
root users, including those running in a jail, to change these data
|
||||||
|
structures.
|
||||||
|
|
||||||
|
III. Impact
|
||||||
|
|
||||||
|
An attacker with host root access (including to a jailed bhyve instance) can
|
||||||
|
use this vulnerability to achieve kernel code execution.
|
||||||
|
|
||||||
|
IV. Workaround
|
||||||
|
|
||||||
|
No workaround is available. This issue is likely of concern only to systems
|
||||||
|
relying on running bhyve in jail(8) for security domain separation.
|
||||||
|
|
||||||
|
V. Solution
|
||||||
|
|
||||||
|
Upgrade your vulnerable system to a supported FreeBSD stable or
|
||||||
|
release / security branch (releng) dated after the correction date,
|
||||||
|
and reboot.
|
||||||
|
|
||||||
|
Perform one of the following:
|
||||||
|
|
||||||
|
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 a 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-20:28/bhyve_vmcs.patch
|
||||||
|
# fetch https://security.FreeBSD.org/patches/SA-20:28/bhyve_vmcs.patch.asc
|
||||||
|
# gpg --verify bhyve_vmcs.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/ r365777
|
||||||
|
releng/12.2/ r365779
|
||||||
|
releng/12.1/ r365779
|
||||||
|
stable/11/ r365777
|
||||||
|
releng/11.4/ r365779
|
||||||
|
releng/11.3/ r365779
|
||||||
|
- -------------------------------------------------------------------------
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-24718>
|
||||||
|
|
||||||
|
The latest revision of this advisory is available at
|
||||||
|
<URL:https://security.FreeBSD.org/advisories/FreeBSD-SA-20:28.bhyve_vmcs.asc>
|
||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQKTBAEBCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl9hOJdfFIAAAAAALgAo
|
||||||
|
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
|
||||||
|
MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
|
||||||
|
5cKJBQ//UOwIgcc2n+Yr0MrNIs2XzLjmKBsuVfIrFni0GGJFFSAUd7Kzw7oeY4ng
|
||||||
|
e9JURtfV6NlU63QkaRw+QqgvnXm5vLbgO+oWuedsj33eNgUNdUinZinieZuFAyAt
|
||||||
|
BBgfMJ3D9X7HffIw1iKN/DWaealFJ1SHtKYzVssTBx/7ju+SFj5HkwLh/7QzKBYO
|
||||||
|
CoeNE7RN2kSDmvvEKMdN17QyM4+H3wYpsnylWHa89slIe1xj0eVqgnGw2NrjjKlV
|
||||||
|
N2DAQM+MvdJ+W8oA0idEvBZj55uHV9OlgIwJCDi0/u5yHPJkhuYYuHsf0oyW+NT6
|
||||||
|
gWvzwTI27IAAyYKK57pGVP7x4sy8VhsDItzqubhDqa/zjNZM9SYOtLYiOnDjev2B
|
||||||
|
nqC2mV08XpC9lfwd3EDPGv+FYbTTe9OzirlJBnbMnwhj/p0sPMYCtuWKp/MyQyyD
|
||||||
|
1yhUJJlZgI6HdrTOOeqhObNDtEz75MI1bpLVmjq9VMLz1PtzdNFDcNmyvtTOpMut
|
||||||
|
vZDFgCqtkpcukqxfqV1EJAWr0UWnaUyPc0klbmLwrQCpTWDOBT7QK+S5ZtNLQqu4
|
||||||
|
c6UJ7CQLNPn9nEjf16D8dZ1Iy3AJyPmtv7ehEkKFjJtNIwitCx/AIzKiXXzzxe56
|
||||||
|
boJoQL0pmgJkv3tjP5dEMeSx5SA4mrhtKCL+ri3/ZFXHxtcDNsQ=
|
||||||
|
=Jluz
|
||||||
|
-----END PGP SIGNATURE-----
|
||||||
136
share/security/advisories/FreeBSD-SA-20:29.bhyve_svm.asc
Normal file
136
share/security/advisories/FreeBSD-SA-20:29.bhyve_svm.asc
Normal file
|
|
@ -0,0 +1,136 @@
|
||||||
|
-----BEGIN PGP SIGNED MESSAGE-----
|
||||||
|
Hash: SHA512
|
||||||
|
|
||||||
|
=============================================================================
|
||||||
|
FreeBSD-SA-20:29.bhyve_svm Security Advisory
|
||||||
|
The FreeBSD Project
|
||||||
|
|
||||||
|
Topic: bhyve SVM guest escape
|
||||||
|
|
||||||
|
Category: core
|
||||||
|
Module: bhyve
|
||||||
|
Announced: 2020-09-15
|
||||||
|
Credits: Maxime Villard
|
||||||
|
Affects: All supported versions of FreeBSD.
|
||||||
|
Corrected: 2020-09-15 20:25:30 UTC (stable/12, 12.2-STABLE)
|
||||||
|
2020-09-15 21:46:39 UTC (releng/12.2, 12.2-BETA1-p1)
|
||||||
|
2020-09-15 21:46:39 UTC (releng/12.1, 12.1-RELEASE-p10)
|
||||||
|
2020-09-15 20:26:31 UTC (stable/11, 11.4-STABLE)
|
||||||
|
2020-09-15 21:46:39 UTC (releng/11.4, 11.4-RELEASE-p4)
|
||||||
|
2020-09-15 21:46:39 UTC (releng/11.3, 11.3-RELEASE-p14)
|
||||||
|
CVE Name: CVE-2020-7467
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
bhyve(8) is a hypervisor that supports running a variety of guest operating
|
||||||
|
systems in virtual machines on AMD and Intel CPUs. AMD and Intel provide
|
||||||
|
broadly similar virtualization interfaces, but each provides its own specific
|
||||||
|
instructions for manipulating virtual machine state.
|
||||||
|
|
||||||
|
II. Problem Description
|
||||||
|
|
||||||
|
A number of AMD virtualization instructions operate on host physical
|
||||||
|
addresses, are not subject to nested page table translation, and guest use of
|
||||||
|
these instructions was not trapped.
|
||||||
|
|
||||||
|
III. Impact
|
||||||
|
|
||||||
|
- From kernel mode a malicious guest can write to arbitrary host memory (with
|
||||||
|
some constraints), affording the guest full control of the host.
|
||||||
|
|
||||||
|
IV. Workaround
|
||||||
|
|
||||||
|
No workaround is available. Systems not using bhyve, and systems that
|
||||||
|
use bhyve with an Intel CPU, 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.
|
||||||
|
|
||||||
|
Perform one of the following:
|
||||||
|
|
||||||
|
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 a 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-20:29/bhyve_svm.patch
|
||||||
|
# fetch https://security.FreeBSD.org/patches/SA-20:29/bhyve_svm.patch.asc
|
||||||
|
# gpg --verify bhyve_svm.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/ r365767
|
||||||
|
releng/12.2/ r365780
|
||||||
|
releng/12.1/ r365780
|
||||||
|
stable/11/ r365769
|
||||||
|
releng/11.4/ r365780
|
||||||
|
releng/11.3/ r365780
|
||||||
|
- -------------------------------------------------------------------------
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-7467>
|
||||||
|
|
||||||
|
The latest revision of this advisory is available at
|
||||||
|
<URL:https://security.FreeBSD.org/advisories/FreeBSD-SA-20:29.bhyve_svm.asc>
|
||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQKTBAEBCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl9hOJhfFIAAAAAALgAo
|
||||||
|
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
|
||||||
|
MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
|
||||||
|
5cJxjxAAjy783UUnVvhtiJt4p5TGMpaU+ZrLnKaOASiTDdbp6z3IFuLZ1VbkekAM
|
||||||
|
aMGgZNmYkRotcTM0mbhoeRROSrYlmO2ZHNmJyxchbOaIfKXL3iTFYP5gRirN1r+Q
|
||||||
|
i8+Gr5HzTL5SkvTEx0wKUp6uRqD26nf7i4KrdOWmf5ivhB66Z2vk/56aX53eSNJ5
|
||||||
|
iPZYvlFnVIcy1wKPE1RIP67H+nqqWBApavWUMK6f01cAMr5w0BE+f4RdSvzEFnuG
|
||||||
|
p2Id8A3ptt0VoIdZzbJkLKog4/dlC1C+PVPPLND2gcCY2c/+gG0nNTy9Fjdvsoor
|
||||||
|
AnmRvlarCCcEVOSxGk+WNUwWdQnQPFykpZxGtid53km3Yjw1smPmfOVwvNhTkzoP
|
||||||
|
tPZ568wFyaBGLI+39hC0u0AtLT93MBHpxpCMpQZ9rlFauxn5OuyBFkxgCuEyq728
|
||||||
|
GcrMVggyrzOetW7GqdlOEzFDj3nxHme+08qmbLXjv5X8N1RK+TGZDAjYFqLU1NXi
|
||||||
|
cyPhbGqV4SuYw3dW7E0C8eOocuVmpXTEW82R9ff1pobUZUNVGKZse1rjT344VTSc
|
||||||
|
DazL/q2TIo5fyDWEaNWsPad8mdyQGWft2cfYHYrO+Y6Smn/oKS3LmX61bGC37FEF
|
||||||
|
b0rqunbDdq4775q6H6KKbRgVTKGiVyC/Nt/2xkg//GymzNnuFvY=
|
||||||
|
=lplz
|
||||||
|
-----END PGP SIGNATURE-----
|
||||||
140
share/security/advisories/FreeBSD-SA-20:30.ftpd.asc
Normal file
140
share/security/advisories/FreeBSD-SA-20:30.ftpd.asc
Normal file
|
|
@ -0,0 +1,140 @@
|
||||||
|
-----BEGIN PGP SIGNED MESSAGE-----
|
||||||
|
Hash: SHA512
|
||||||
|
|
||||||
|
=============================================================================
|
||||||
|
FreeBSD-SA-20:30.ftpd Security Advisory
|
||||||
|
The FreeBSD Project
|
||||||
|
|
||||||
|
Topic: ftpd privilege escalation via ftpchroot feature
|
||||||
|
|
||||||
|
Category: core
|
||||||
|
Module: ftpd
|
||||||
|
Announced: 2020-09-15
|
||||||
|
Credits: Anonymous working with Trend Micro Zero Day Initiative
|
||||||
|
Affects: All supported versions of FreeBSD.
|
||||||
|
Corrected: 2020-09-15 20:55:13 UTC (stable/12, 12.2-STABLE)
|
||||||
|
2020-09-15 21:47:44 UTC (releng/12.2, 12.2-BETA1-p1)
|
||||||
|
2020-09-15 21:47:44 UTC (releng/12.1, 12.1-RELEASE-p10)
|
||||||
|
2020-09-15 20:56:14 UTC (stable/11, 11.4-STABLE)
|
||||||
|
2020-09-15 21:47:44 UTC (releng/11.4, 11.4-RELEASE-p4)
|
||||||
|
2020-09-15 21:47:44 UTC (releng/11.3, 11.3-RELEASE-p14)
|
||||||
|
CVE Name: CVE-2020-7468
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
ftpd(8) is a daemon that implements an FTP server. To restrict
|
||||||
|
filesystem access of authenticated clients, ftpd(8) supports the
|
||||||
|
ftpchroot(5) feature, which allows the system administrator to designate
|
||||||
|
a root directory for each FTP user. This is implemented using the
|
||||||
|
chroot(2) system call.
|
||||||
|
|
||||||
|
II. Problem Description
|
||||||
|
|
||||||
|
A ftpd(8) bug in the implementation of the file system sandbox, combined
|
||||||
|
with capabilities available to an authenticated FTP user, can be used to
|
||||||
|
escape the file system restriction configured in ftpchroot(5).
|
||||||
|
Moreover, the bug allows a malicious client to gain root privileges.
|
||||||
|
|
||||||
|
III. Impact
|
||||||
|
|
||||||
|
A malicious FTP user can gain privileged access to an affected system.
|
||||||
|
|
||||||
|
IV. Workaround
|
||||||
|
|
||||||
|
No workaround is available. Systems not running ftpd(8) or not making
|
||||||
|
use of ftpchroot(5) are not affected. Exploitation of the bug requires
|
||||||
|
that a malicious FTP client have login access to the server. Anonymous
|
||||||
|
access is not sufficient.
|
||||||
|
|
||||||
|
V. Solution
|
||||||
|
|
||||||
|
Upgrade your vulnerable system to a supported FreeBSD stable or
|
||||||
|
release / security branch (releng) dated after the correction date.
|
||||||
|
|
||||||
|
Perform one of the following:
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
Restart the applicable daemons, or reboot the system.
|
||||||
|
|
||||||
|
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-20:30/ftpd.patch
|
||||||
|
# fetch https://security.FreeBSD.org/patches/SA-20:30/ftpd.patch.asc
|
||||||
|
# gpg --verify ftpd.patch.asc
|
||||||
|
|
||||||
|
b) Apply the patch. Execute the following commands as root:
|
||||||
|
|
||||||
|
# cd /usr/src
|
||||||
|
# patch < /path/to/patch
|
||||||
|
|
||||||
|
c) Recompile the operating system using buildworld and installworld as
|
||||||
|
described in <URL:https://www.FreeBSD.org/handbook/makeworld.html>.
|
||||||
|
|
||||||
|
Restart the applicable daemons, or reboot the system.
|
||||||
|
|
||||||
|
VI. Correction details
|
||||||
|
|
||||||
|
The following list contains the correction revision numbers for each
|
||||||
|
affected branch.
|
||||||
|
|
||||||
|
Branch/path Revision
|
||||||
|
- -------------------------------------------------------------------------
|
||||||
|
stable/12/ r365772
|
||||||
|
releng/12.2/ r365781
|
||||||
|
releng/12.1/ r365781
|
||||||
|
stable/11/ r365773
|
||||||
|
releng/11.4/ r365781
|
||||||
|
releng/11.3/ r365781
|
||||||
|
- -------------------------------------------------------------------------
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-7468>
|
||||||
|
|
||||||
|
The latest revision of this advisory is available at
|
||||||
|
<URL:https://security.FreeBSD.org/advisories/FreeBSD-SA-20:30.ftpd.asc>
|
||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQKTBAEBCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl9hOJhfFIAAAAAALgAo
|
||||||
|
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
|
||||||
|
MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
|
||||||
|
5cJCRA//Zuuqyaim3BnR0Qs9mSI3fm37AQN9NyV0GzaP6ayAeCu7xuyzMzFD58jU
|
||||||
|
SZAkrH16buh34dfelwofPSO8ZIAHZ0X6PpVWHwrTkrT8ADHCuJwEe0imG5MDDJn4
|
||||||
|
mMJSA9OVyQXgHXApnOhJ4hHMUfGF0QJvsOvPQ4f8J3J9K9pTa78HgekaNWkgpTzo
|
||||||
|
eAGV+lug/UwsK//FrcyYaifZF1xl0ZKSAl6RVFVaqxxVXZGZ2txlew4I03NEfqjJ
|
||||||
|
PAmviQ1p0BO5tMqVSG+/VkuYFJNyUGvuSrvUeIoQnoWljvKx5VnAq5KVCD6La1nn
|
||||||
|
o5JzNEvlqzOC1ClribxALyv/VJHJt6PDBF4S26ATwIdr8TCzSpe2Byjj9KN/qC94
|
||||||
|
JuT6hScERpT4ARIsJiDIDe0+9zBeglJuS/3sJozI+ani+VL/7uBL6MB50twgioFG
|
||||||
|
4+5MNgc4VYgX35U0z+fStncZAScByXWdxaMDYx9brfZeaeEhiZA6wXYCf8kpaW94
|
||||||
|
zDOvBCH+GR1O2nALdlMVFrThQdTkq1AtMQ58Uuaxpu1LBGrMVfz/VCDEurWog+U1
|
||||||
|
7uxRwx9o6lJvno3oPQTfHkcuHZosOE0KdfdJ1Tcmj1pVZVjeaxu7HEW2H73YRhBN
|
||||||
|
Fc4XIxaO7URyYwtzxzH9yU18wKCp+g/mm5apgbbcz1kBS+fR3Go=
|
||||||
|
=zvW4
|
||||||
|
-----END PGP SIGNATURE-----
|
||||||
13
share/security/patches/SA-20:27/ure.11.patch
Normal file
13
share/security/patches/SA-20:27/ure.11.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
--- sys/dev/usb/net/if_ure.c.orig
|
||||||
|
+++ sys/dev/usb/net/if_ure.c
|
||||||
|
@@ -710,7 +710,9 @@
|
||||||
|
~URE_RXDY_GATED_EN);
|
||||||
|
|
||||||
|
/* Set Rx mode. */
|
||||||
|
- rxmode = URE_RCR_APM;
|
||||||
|
+ rxmode = ure_read_4(sc, URE_PLA_RCR, URE_MCU_TYPE_PLA);
|
||||||
|
+ rxmode &= ~URE_RCR_ACPT_ALL;
|
||||||
|
+ rxmode |= URE_RCR_APM;
|
||||||
|
|
||||||
|
/* If we want promiscuous mode, set the allframes bit. */
|
||||||
|
if (ifp->if_flags & IFF_PROMISC)
|
||||||
18
share/security/patches/SA-20:27/ure.11.patch.asc
Normal file
18
share/security/patches/SA-20:27/ure.11.patch.asc
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQKTBAABCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl9hOJdfFIAAAAAALgAo
|
||||||
|
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
|
||||||
|
MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
|
||||||
|
5cIisRAAlVB+hNBKrmr7kjc+cOeeLofnAppEywIJsQoKus4y7P23K2gguL+zJX6p
|
||||||
|
UTMSysmDXJG1OVEzpLpq7R6mGWD18vOMvKyNgijnGJeeIwjGqACHK68v2tFosW61
|
||||||
|
g4kRKIuuLMxeqrySn4P8IgKRVV6Em+/LuYkqr5v3BuKFpAzPxNmvmLEVzaoqh+wS
|
||||||
|
SJgVucuogTxjYwb2pTcIig+rtkE3FHD+x5WxS5DzfCDlp3mqaMSCyoNeF8JMzs7y
|
||||||
|
EXV57iDRjRC5IDBnr2dB55uHFielJioVmfLjMCMRAHlBX7q4Fu3Hobt8oHaOKtTD
|
||||||
|
mk2q3efR3MeIIfLTqwu/Xrzz7c+vCucg9ccpyjK561Kt38W8bUBhMUxN2nQXtUyR
|
||||||
|
ABsWQK8tE7Ie5cJhwF3ajcESEZ8nx0s9NrQYdFE/od+MVlWeXpGNsBoFDUoGILqS
|
||||||
|
sgpn+2QUoruEVUujUyfMK8H5bG4DrPeoN8Tn9VopA8VR0N7p00lyfKX3g1knGMyh
|
||||||
|
Bq778Est5lKi++h02YV8c25/T2pVd6rhPqpebggxVKaGoTgsTd7i5ty8/ExqOgUF
|
||||||
|
Y8CAF3MwAVwn0kdeUkcwexykPnb1VFPDmBFrN2EoJYERRqh+fTp44ifldeYr7dhl
|
||||||
|
hYHJDvtRY7mlTPekn0oXBJYuY1NJ77nOmxhXVBoVOuWJrjMcl5A=
|
||||||
|
=NUJu
|
||||||
|
-----END PGP SIGNATURE-----
|
||||||
16
share/security/patches/SA-20:27/ure.12.patch
Normal file
16
share/security/patches/SA-20:27/ure.12.patch
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
--- sys/dev/usb/net/if_ure.c.orig
|
||||||
|
+++ sys/dev/usb/net/if_ure.c
|
||||||
|
@@ -816,9 +816,10 @@
|
||||||
|
|
||||||
|
URE_LOCK_ASSERT(sc, MA_OWNED);
|
||||||
|
|
||||||
|
- rxmode = URE_RCR_APM;
|
||||||
|
- if (ifp->if_flags & IFF_BROADCAST)
|
||||||
|
- rxmode |= URE_RCR_AB;
|
||||||
|
+ rxmode = ure_read_4(sc, URE_PLA_RCR, URE_MCU_TYPE_PLA);
|
||||||
|
+ rxmode &= ~(URE_RCR_AAP | URE_RCR_AM);
|
||||||
|
+ rxmode |= URE_RCR_APM; /* accept physical match packets */
|
||||||
|
+ rxmode |= URE_RCR_AB; /* always accept broadcasts */
|
||||||
|
if (ifp->if_flags & (IFF_ALLMULTI | IFF_PROMISC)) {
|
||||||
|
if (ifp->if_flags & IFF_PROMISC)
|
||||||
|
rxmode |= URE_RCR_AAP;
|
||||||
18
share/security/patches/SA-20:27/ure.12.patch.asc
Normal file
18
share/security/patches/SA-20:27/ure.12.patch.asc
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQKTBAABCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl9hOJdfFIAAAAAALgAo
|
||||||
|
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
|
||||||
|
MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
|
||||||
|
5cJpVQ//c2z6nk+LDQaFYnDyg9Fkl0GqmVsJ0Ml3Wog1lUU0nOqacAhBmZTwq3Oq
|
||||||
|
dzQ2jstcf1dqj9Bt/6Q525Odt8Bk5zzzN6qHFL+kJiHDWB0aYCfACucYykVH7uIM
|
||||||
|
LF5XVX8zzHrCW3kvcAwukRB4XhN5eo4uPGpVcm9css5yIEYL++Bxq5UrrL6LgXd3
|
||||||
|
kDNMeCXe/RjhnUjwcfjSw+EgUhNlvWmWjV6d2tTxhzqtIfsovTfJuw6tqHsLFhCG
|
||||||
|
PGUmNi7dH1/OmdzPCrVuxzPy2VaZe8H8s6VXL8orbpw+RWZ6W8E/WOktK2S6HHLb
|
||||||
|
X0jv3fZ37K3SnydCKlCl5ATPhvhZWhVGSGXVEg4jA7MTU/rjMh1VlH8cPmH66z1x
|
||||||
|
DxhGH1dO9v/E6v4/YQ6fwMMGnmH0fDRRNs9rodPi6goj70OxvHPAIpbPvm4ZS26c
|
||||||
|
XvENpnz7rVZyJ8+iehnLQvsarNQ/neJipI7SpIVb1+2g/tHMbq77Mw6wpkB1kKyn
|
||||||
|
jB9uZZwVn7SlK3XvXZN3jTgTrMhuvTzPJ/0Ek3qYSqWbAPIen+GUC8XJZlO1QLoL
|
||||||
|
ShkEKWFZBuLmx+/emDG8tiu4WidmeCRHva3gjgOMijyNWETiajMFk7sVbKk974zi
|
||||||
|
DBquYG/wHWnsOOtSbOTAtIWopZdaxaA7HQVEcGY/6iB8/twlOl8=
|
||||||
|
=Adwg
|
||||||
|
-----END PGP SIGNATURE-----
|
||||||
29
share/security/patches/SA-20:28/bhyve_vmcs.patch
Normal file
29
share/security/patches/SA-20:28/bhyve_vmcs.patch
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
--- sys/amd64/vmm/amd/svm.c.orig
|
||||||
|
+++ sys/amd64/vmm/amd/svm.c
|
||||||
|
@@ -2198,8 +2198,11 @@
|
||||||
|
return (svm_modify_intr_shadow(svm_sc, vcpu, val));
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (vmcb_write(svm_sc, vcpu, ident, val) == 0) {
|
||||||
|
- return (0);
|
||||||
|
+ /* Do not permit user write access to VMCB fields by offset. */
|
||||||
|
+ if (!VMCB_ACCESS_OK(ident)) {
|
||||||
|
+ if (vmcb_write(svm_sc, vcpu, ident, val) == 0) {
|
||||||
|
+ return (0);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
reg = swctx_regptr(svm_get_guest_regctx(svm_sc, vcpu), ident);
|
||||||
|
--- sys/amd64/vmm/intel/vmx.c.orig
|
||||||
|
+++ sys/amd64/vmm/intel/vmx.c
|
||||||
|
@@ -3341,6 +3341,10 @@
|
||||||
|
if (vmxctx_setreg(&vmx->ctx[vcpu], reg, val) == 0)
|
||||||
|
return (0);
|
||||||
|
|
||||||
|
+ /* Do not permit user write access to VMCS fields by offset. */
|
||||||
|
+ if (reg < 0)
|
||||||
|
+ return (EINVAL);
|
||||||
|
+
|
||||||
|
error = vmcs_setreg(&vmx->vmcs[vcpu], running, reg, val);
|
||||||
|
|
||||||
|
if (error == 0) {
|
||||||
18
share/security/patches/SA-20:28/bhyve_vmcs.patch.asc
Normal file
18
share/security/patches/SA-20:28/bhyve_vmcs.patch.asc
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQKTBAABCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl9hOJhfFIAAAAAALgAo
|
||||||
|
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
|
||||||
|
MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
|
||||||
|
5cJOpA//d8gbQS8I5HdY/xWmt4RoQ8yhvE1v3AmOqt7o14CfKCfMSMFqu7lGXcB/
|
||||||
|
rkpIgKmGGS/j+XMeLAvmHtw4zdM1PdkJ4bk71GLfpT91YF9cC7eKHJreidDiMD9z
|
||||||
|
48DTlCz0lWg7sGLpas5viXZkX7WRhtHHLBzMAHh6k1Ew4N1A/668cH/ZU1C4w4pm
|
||||||
|
yXzY+su5yXKgdqhibOPlpvuYhITVkqHnkDyMqlppo/hxfjYNKBii+sDBAieGJBmp
|
||||||
|
1+sW6iCEXdZK+m9LCfiNPOWLE2dkZEqwOazoFBJDmjyp/EZW4sdGhkEgVsADodym
|
||||||
|
WOqZi8Ca2qfWm7NumGr20zsVbVe9Qx4dspRGLYcs3POaqa1LOg82lcys/h47t4Vw
|
||||||
|
0uM2UBRGS5XD1V5bB0BWOLYZc7ZlGljASzzZmhBt7MiBJcuzeTwhDGQO3L2otVG6
|
||||||
|
SAV1H46onKOU997Br9wH5yFNFgvHf26OjDrE4b9hgSDZsXafSk9mE1rWLLxKRKWT
|
||||||
|
//ZhN7F/L5JHmRtFMsHa2kKbYiwrxX/T17s9yupn/iOUdu0er+ECqER629PATrxx
|
||||||
|
5bQxE9geVD7LIEIyYSs7u9H0gP00N656gXIRTr4yQ77O7+AHfJYelHEo6XJNRSdb
|
||||||
|
Lql9kgsikbH3G2V4HdGBLdxOR/FeCuC5kP9Qoa2L0YVUbfadpUY=
|
||||||
|
=nYIH
|
||||||
|
-----END PGP SIGNATURE-----
|
||||||
163
share/security/patches/SA-20:29/bhyve_svm.patch
Normal file
163
share/security/patches/SA-20:29/bhyve_svm.patch
Normal file
|
|
@ -0,0 +1,163 @@
|
||||||
|
--- sys/amd64/vmm/amd/svm.c.orig
|
||||||
|
+++ sys/amd64/vmm/amd/svm.c
|
||||||
|
@@ -488,10 +488,23 @@
|
||||||
|
svm_enable_intercept(sc, vcpu, VMCB_CTRL1_INTCPT, VMCB_INTCPT_SHUTDOWN);
|
||||||
|
svm_enable_intercept(sc, vcpu, VMCB_CTRL1_INTCPT,
|
||||||
|
VMCB_INTCPT_FERR_FREEZE);
|
||||||
|
+ svm_enable_intercept(sc, vcpu, VMCB_CTRL1_INTCPT, VMCB_INTCPT_INVD);
|
||||||
|
+ svm_enable_intercept(sc, vcpu, VMCB_CTRL1_INTCPT, VMCB_INTCPT_INVLPGA);
|
||||||
|
|
||||||
|
svm_enable_intercept(sc, vcpu, VMCB_CTRL2_INTCPT, VMCB_INTCPT_MONITOR);
|
||||||
|
svm_enable_intercept(sc, vcpu, VMCB_CTRL2_INTCPT, VMCB_INTCPT_MWAIT);
|
||||||
|
|
||||||
|
+ /*
|
||||||
|
+ * Intercept SVM instructions since AMD enables them in guests otherwise.
|
||||||
|
+ * Non-intercepted VMMCALL causes #UD, skip it.
|
||||||
|
+ */
|
||||||
|
+ svm_enable_intercept(sc, vcpu, VMCB_CTRL2_INTCPT, VMCB_INTCPT_VMLOAD);
|
||||||
|
+ svm_enable_intercept(sc, vcpu, VMCB_CTRL2_INTCPT, VMCB_INTCPT_VMSAVE);
|
||||||
|
+ svm_enable_intercept(sc, vcpu, VMCB_CTRL2_INTCPT, VMCB_INTCPT_STGI);
|
||||||
|
+ svm_enable_intercept(sc, vcpu, VMCB_CTRL2_INTCPT, VMCB_INTCPT_CLGI);
|
||||||
|
+ svm_enable_intercept(sc, vcpu, VMCB_CTRL2_INTCPT, VMCB_INTCPT_SKINIT);
|
||||||
|
+ svm_enable_intercept(sc, vcpu, VMCB_CTRL2_INTCPT, VMCB_INTCPT_ICEBP);
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* From section "Canonicalization and Consistency Checks" in APMv2
|
||||||
|
* the VMRUN intercept bit must be set to pass the consistency check.
|
||||||
|
@@ -1236,43 +1249,45 @@
|
||||||
|
static const char *
|
||||||
|
exit_reason_to_str(uint64_t reason)
|
||||||
|
{
|
||||||
|
+ int i;
|
||||||
|
static char reasonbuf[32];
|
||||||
|
-
|
||||||
|
- switch (reason) {
|
||||||
|
- case VMCB_EXIT_INVALID:
|
||||||
|
- return ("invalvmcb");
|
||||||
|
- case VMCB_EXIT_SHUTDOWN:
|
||||||
|
- return ("shutdown");
|
||||||
|
- case VMCB_EXIT_NPF:
|
||||||
|
- return ("nptfault");
|
||||||
|
- case VMCB_EXIT_PAUSE:
|
||||||
|
- return ("pause");
|
||||||
|
- case VMCB_EXIT_HLT:
|
||||||
|
- return ("hlt");
|
||||||
|
- case VMCB_EXIT_CPUID:
|
||||||
|
- return ("cpuid");
|
||||||
|
- case VMCB_EXIT_IO:
|
||||||
|
- return ("inout");
|
||||||
|
- case VMCB_EXIT_MC:
|
||||||
|
- return ("mchk");
|
||||||
|
- case VMCB_EXIT_INTR:
|
||||||
|
- return ("extintr");
|
||||||
|
- case VMCB_EXIT_NMI:
|
||||||
|
- return ("nmi");
|
||||||
|
- case VMCB_EXIT_VINTR:
|
||||||
|
- return ("vintr");
|
||||||
|
- case VMCB_EXIT_MSR:
|
||||||
|
- return ("msr");
|
||||||
|
- case VMCB_EXIT_IRET:
|
||||||
|
- return ("iret");
|
||||||
|
- case VMCB_EXIT_MONITOR:
|
||||||
|
- return ("monitor");
|
||||||
|
- case VMCB_EXIT_MWAIT:
|
||||||
|
- return ("mwait");
|
||||||
|
- default:
|
||||||
|
- snprintf(reasonbuf, sizeof(reasonbuf), "%#lx", reason);
|
||||||
|
- return (reasonbuf);
|
||||||
|
+ static const struct {
|
||||||
|
+ int reason;
|
||||||
|
+ const char *str;
|
||||||
|
+ } reasons[] = {
|
||||||
|
+ { .reason = VMCB_EXIT_INVALID, .str = "invalvmcb" },
|
||||||
|
+ { .reason = VMCB_EXIT_SHUTDOWN, .str = "shutdown" },
|
||||||
|
+ { .reason = VMCB_EXIT_NPF, .str = "nptfault" },
|
||||||
|
+ { .reason = VMCB_EXIT_PAUSE, .str = "pause" },
|
||||||
|
+ { .reason = VMCB_EXIT_HLT, .str = "hlt" },
|
||||||
|
+ { .reason = VMCB_EXIT_CPUID, .str = "cpuid" },
|
||||||
|
+ { .reason = VMCB_EXIT_IO, .str = "inout" },
|
||||||
|
+ { .reason = VMCB_EXIT_MC, .str = "mchk" },
|
||||||
|
+ { .reason = VMCB_EXIT_INTR, .str = "extintr" },
|
||||||
|
+ { .reason = VMCB_EXIT_NMI, .str = "nmi" },
|
||||||
|
+ { .reason = VMCB_EXIT_VINTR, .str = "vintr" },
|
||||||
|
+ { .reason = VMCB_EXIT_MSR, .str = "msr" },
|
||||||
|
+ { .reason = VMCB_EXIT_IRET, .str = "iret" },
|
||||||
|
+ { .reason = VMCB_EXIT_MONITOR, .str = "monitor" },
|
||||||
|
+ { .reason = VMCB_EXIT_MWAIT, .str = "mwait" },
|
||||||
|
+ { .reason = VMCB_EXIT_VMRUN, .str = "vmrun" },
|
||||||
|
+ { .reason = VMCB_EXIT_VMMCALL, .str = "vmmcall" },
|
||||||
|
+ { .reason = VMCB_EXIT_VMLOAD, .str = "vmload" },
|
||||||
|
+ { .reason = VMCB_EXIT_VMSAVE, .str = "vmsave" },
|
||||||
|
+ { .reason = VMCB_EXIT_STGI, .str = "stgi" },
|
||||||
|
+ { .reason = VMCB_EXIT_CLGI, .str = "clgi" },
|
||||||
|
+ { .reason = VMCB_EXIT_SKINIT, .str = "skinit" },
|
||||||
|
+ { .reason = VMCB_EXIT_ICEBP, .str = "icebp" },
|
||||||
|
+ { .reason = VMCB_EXIT_INVD, .str = "invd" },
|
||||||
|
+ { .reason = VMCB_EXIT_INVLPGA, .str = "invlpga" },
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ for (i = 0; i < nitems(reasons); i++) {
|
||||||
|
+ if (reasons[i].reason == reason)
|
||||||
|
+ return (reasons[i].str);
|
||||||
|
}
|
||||||
|
+ snprintf(reasonbuf, sizeof(reasonbuf), "%#lx", reason);
|
||||||
|
+ return (reasonbuf);
|
||||||
|
}
|
||||||
|
#endif /* KTR */
|
||||||
|
|
||||||
|
@@ -1524,6 +1539,20 @@
|
||||||
|
case VMCB_EXIT_MWAIT:
|
||||||
|
vmexit->exitcode = VM_EXITCODE_MWAIT;
|
||||||
|
break;
|
||||||
|
+ case VMCB_EXIT_SHUTDOWN:
|
||||||
|
+ case VMCB_EXIT_VMRUN:
|
||||||
|
+ case VMCB_EXIT_VMMCALL:
|
||||||
|
+ case VMCB_EXIT_VMLOAD:
|
||||||
|
+ case VMCB_EXIT_VMSAVE:
|
||||||
|
+ case VMCB_EXIT_STGI:
|
||||||
|
+ case VMCB_EXIT_CLGI:
|
||||||
|
+ case VMCB_EXIT_SKINIT:
|
||||||
|
+ case VMCB_EXIT_ICEBP:
|
||||||
|
+ case VMCB_EXIT_INVD:
|
||||||
|
+ case VMCB_EXIT_INVLPGA:
|
||||||
|
+ vm_inject_ud(svm_sc->vm, vcpu);
|
||||||
|
+ handled = 1;
|
||||||
|
+ break;
|
||||||
|
default:
|
||||||
|
vmm_stat_incr(svm_sc->vm, vcpu, VMEXIT_UNKNOWN, 1);
|
||||||
|
break;
|
||||||
|
--- sys/amd64/vmm/amd/vmcb.h.orig
|
||||||
|
+++ sys/amd64/vmm/amd/vmcb.h
|
||||||
|
@@ -71,8 +71,8 @@
|
||||||
|
#define VMCB_INTCPT_INVD BIT(22)
|
||||||
|
#define VMCB_INTCPT_PAUSE BIT(23)
|
||||||
|
#define VMCB_INTCPT_HLT BIT(24)
|
||||||
|
-#define VMCB_INTCPT_INVPG BIT(25)
|
||||||
|
-#define VMCB_INTCPT_INVPGA BIT(26)
|
||||||
|
+#define VMCB_INTCPT_INVLPG BIT(25)
|
||||||
|
+#define VMCB_INTCPT_INVLPGA BIT(26)
|
||||||
|
#define VMCB_INTCPT_IO BIT(27)
|
||||||
|
#define VMCB_INTCPT_MSR BIT(28)
|
||||||
|
#define VMCB_INTCPT_TASK_SWITCH BIT(29)
|
||||||
|
@@ -134,12 +134,21 @@
|
||||||
|
#define VMCB_EXIT_POPF 0x71
|
||||||
|
#define VMCB_EXIT_CPUID 0x72
|
||||||
|
#define VMCB_EXIT_IRET 0x74
|
||||||
|
+#define VMCB_EXIT_INVD 0x76
|
||||||
|
#define VMCB_EXIT_PAUSE 0x77
|
||||||
|
#define VMCB_EXIT_HLT 0x78
|
||||||
|
+#define VMCB_EXIT_INVLPGA 0x7A
|
||||||
|
#define VMCB_EXIT_IO 0x7B
|
||||||
|
#define VMCB_EXIT_MSR 0x7C
|
||||||
|
#define VMCB_EXIT_SHUTDOWN 0x7F
|
||||||
|
+#define VMCB_EXIT_VMRUN 0x80
|
||||||
|
+#define VMCB_EXIT_VMMCALL 0x81
|
||||||
|
+#define VMCB_EXIT_VMLOAD 0x82
|
||||||
|
#define VMCB_EXIT_VMSAVE 0x83
|
||||||
|
+#define VMCB_EXIT_STGI 0x84
|
||||||
|
+#define VMCB_EXIT_CLGI 0x85
|
||||||
|
+#define VMCB_EXIT_SKINIT 0x86
|
||||||
|
+#define VMCB_EXIT_ICEBP 0x88
|
||||||
|
#define VMCB_EXIT_MONITOR 0x8A
|
||||||
|
#define VMCB_EXIT_MWAIT 0x8B
|
||||||
|
#define VMCB_EXIT_NPF 0x400
|
||||||
18
share/security/patches/SA-20:29/bhyve_svm.patch.asc
Normal file
18
share/security/patches/SA-20:29/bhyve_svm.patch.asc
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQKTBAABCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl9hOJhfFIAAAAAALgAo
|
||||||
|
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
|
||||||
|
MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
|
||||||
|
5cI5PhAAgsXuFNy2fRvNjAgJoY41AIwBr/5T+0WM09YykMcTC1EQBm1AjRI9jgAm
|
||||||
|
V4HUQeH7ygs9TVkn+F02iLHSSCJAneu2nPNIalCxyKwhpXpJiYktrJ5wLVC7Q2DC
|
||||||
|
63Lc7WrfJ858+9ehXh4bvCTJeOJxOIyvaoOLEPslaGje/YD+plqdNWO036D0w+7j
|
||||||
|
Fbx2rvCILLKIaxVYLCmhm/6V46dT1HHwXJP1dGuKr1ZSq6MGley3KGl7b5b7xb0E
|
||||||
|
gfZh09QBH7tfATTHnAv2FvLzSBCDn4aZlFZl0uvK8qbK5ZFyfEPicu4SGHtXrMzK
|
||||||
|
0tBATwLwf1JwgBvYKLR+kywxceVgbLTY0iAo354/GcjHzXR3JE4hxDD4/2FL+r10
|
||||||
|
Q8A75AV1/SPf4UOczgapzvqY1zj6M8/ibOPEU+0qaN8YotabGEUr3DLR0d5nWWm1
|
||||||
|
BQnBifkyb9ux8AfWjtWHYu6zY5r4sHCZQQXUJHOyCUGpG0mX2p+MxZWCuTJGrYOs
|
||||||
|
PZyZoJw1vH2rpUcgLikDYkDXCpWNCzwUH7p+tmOAC7EnlFCfxzuv4qgzC538XB76
|
||||||
|
wMkfVM2W1h5BXJQP/G+ELCvXX0REQRO1cMn4rIxmO0EOWpL9SVYUHQ53/MbEOBkf
|
||||||
|
QBkb0COWyNblj6eKG8Cigv0OP1p8iXNXT3zmG6eXeOHckgt6tPA=
|
||||||
|
=+DkR
|
||||||
|
-----END PGP SIGNATURE-----
|
||||||
27
share/security/patches/SA-20:30/ftpd.patch
Normal file
27
share/security/patches/SA-20:30/ftpd.patch
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
--- libexec/ftpd/ftpd.c.orig
|
||||||
|
+++ libexec/ftpd/ftpd.c
|
||||||
|
@@ -1596,13 +1596,20 @@
|
||||||
|
* (uid 0 has no root power over NFS if not mapped explicitly.)
|
||||||
|
*/
|
||||||
|
if (seteuid(pw->pw_uid) < 0) {
|
||||||
|
- reply(550, "Can't set uid.");
|
||||||
|
- goto bad;
|
||||||
|
+ if (guest || dochroot) {
|
||||||
|
+ fatalerror("Can't set uid.");
|
||||||
|
+ } else {
|
||||||
|
+ reply(550, "Can't set uid.");
|
||||||
|
+ goto bad;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
+ /*
|
||||||
|
+ * Do not allow the session to live if we're chroot()'ed and chdir()
|
||||||
|
+ * fails. Otherwise the chroot jail can be escaped.
|
||||||
|
+ */
|
||||||
|
if (chdir(homedir) < 0) {
|
||||||
|
if (guest || dochroot) {
|
||||||
|
- reply(550, "Can't change to base directory.");
|
||||||
|
- goto bad;
|
||||||
|
+ fatalerror("Can't change to base directory.");
|
||||||
|
} else {
|
||||||
|
if (chdir("/") < 0) {
|
||||||
|
reply(550, "Root is inaccessible.");
|
||||||
18
share/security/patches/SA-20:30/ftpd.patch.asc
Normal file
18
share/security/patches/SA-20:30/ftpd.patch.asc
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQKTBAABCgB9FiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAl9hOJhfFIAAAAAALgAo
|
||||||
|
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEZD
|
||||||
|
MEU4NzhBRTVBRkU3ODgwMjhENjM1NUQzOTc5MkY0OUVBN0U1QzIACgkQ05eS9J6n
|
||||||
|
5cKBCQ//ZA1qgbTQomNYbe+s3EsrdvULsyheLjx/Do9P8FjN84pASt4ILIDCykRf
|
||||||
|
vGEMeAB5u4ngvHIUuTm2C0DWeLyyzy9kqoRT8l8CiN7TjAkzHc12vI/c9ruO9nbk
|
||||||
|
f4C7ia01AaRhaktHjz3vgctzGKHAFEKZ9EvjHftW4Qbv4FOLWrCV2ys2icfW2wEI
|
||||||
|
ZLuDZIrcMbQj60mO62h+HJUcAIZ+ssOPEM1+tLhmCd3qvqaiHYeTgnm5llAZAS6X
|
||||||
|
hfH44FgZ/YRXXPj0Asx9aI/RQX8sLIVW7frgDdn6/n3xffl7pdvWjhRf5q4Cy2pl
|
||||||
|
w9hkc1KGUtACaVoz8SlT+FxeKKwdwX1xlX1sb8vrAuyskZmy1Ne05p0xGX5YDrL0
|
||||||
|
QVGEQjndhgi6k2OXjvukME1C7SotC8guMbZtanhCVIsnyE2HdOlsySXvBY4txAl8
|
||||||
|
FgbDhrHnGFRdLFAFdwNaxooKkEG6oiF5FcSkfkOCcW43yh6zEJvybC7BVpzJd7Ry
|
||||||
|
PUZOfytXZAyzB9fqWnku93O4qRakY/do9q3olfk0hRzqoFBpakZ/kMp0dpdWS7Nt
|
||||||
|
DKdUUtf7MKkt3dxxLSqVNvLkLICnzTjj+E5hRU6Y9XDhvs89/Ut5nDNUJE8crQf2
|
||||||
|
juy1ajNlmo5/Pp/0wI9fybDen2YEBPzqN1U1Gm9qKKuyb76POzc=
|
||||||
|
=IcX7
|
||||||
|
-----END PGP SIGNATURE-----
|
||||||
|
|
@ -10,6 +10,27 @@
|
||||||
<month>
|
<month>
|
||||||
<name>9</name>
|
<name>9</name>
|
||||||
|
|
||||||
|
<day>
|
||||||
|
<name>15</name>
|
||||||
|
|
||||||
|
<advisory>
|
||||||
|
<name>FreeBSD-SA-20:30.ftpd</name>
|
||||||
|
</advisory>
|
||||||
|
|
||||||
|
<advisory>
|
||||||
|
<name>FreeBSD-SA-20:29.bhyve_svm</name>
|
||||||
|
</advisory>
|
||||||
|
|
||||||
|
<advisory>
|
||||||
|
<name>FreeBSD-SA-20:28.bhyve_vmcs</name>
|
||||||
|
</advisory>
|
||||||
|
|
||||||
|
<advisory>
|
||||||
|
<name>FreeBSD-SA-20:27.ure</name>
|
||||||
|
</advisory>
|
||||||
|
|
||||||
|
</day>
|
||||||
|
|
||||||
<day>
|
<day>
|
||||||
<name>2</name>
|
<name>2</name>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue