deadsimple BSD Security Advisories and Announcements

FreeBSD Security Advisory FreeBSD-SA-24:01.bhyveload

Hash: SHA512

FreeBSD-SA-24:01.bhyveload                                  Security Advisory
                                                          The FreeBSD Project

Topic:          bhyveload(8) host file access

Category:       core
Module:         bhyeload
Announced:      2024-02-14
Credits:        The water cooler. (Note, this is the requested credit)
Affects:        All supported versions of FreeBSD.
Corrected:      2024-01-15 22:27:59 UTC (stable/14, 14.0-STABLE)
                2024-02-14 06:05:44 UTC (releng/14.0, 14.0-RELEASE-p5)
                2024-01-15 23:11:38 UTC (stable/13, 13.2-STABLE)
                2024-02-14 06:06:00 UTC (releng/13.2, 13.2-RELEASE-p10)
CVE Name:       CVE-2024-25940

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

I.   Background

bhyveload(8) is used to load a FreeBSD guest into a bhyve virtual machine.

II.  Problem Description

`bhyveload -h <host-path>` may be used to grant loader access to the <host-path>
directory tree on the host.  Affected versions of bhyveload(8) do not make any
attempt to restrict loader's access to <host-path>, allowing the loader to read
any file the host user has access to.

III. Impact

In the bhyveload(8) model, the host supplies a to boot with, but the
loader scripts generally come from the guest image.  A maliciously crafted
script could be used to exfiltrate sensitive data from the host accessible to
the user running bhyhveload(8), which is often the system root.

IV.  Workaround

No workaround is available, but guests that do not use `bhyveload -h` are not
impacted.  Common VM solutions that use bhyveload(8) do not usually use the
- -h option.

V.   Solution

Upgrade your 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 amd64 or arm64 platforms,
or the i386 platform on FreeBSD 13, can be updated via the freebsd-update(8)

# freebsd-update fetch
# freebsd-update install

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 14.0]
# fetch
# fetch
# gpg --verify bhyveload-14.0.patch.asc

[FreeBSD 13.2]
# fetch
# fetch
# gpg --verify bhyveload-13.2.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:>.  Virtual
machines that have been booted with bhyveload(8) do not need to be rebooted.

VI.  Correction details

This issue is corrected as of the corresponding Git commit hash in the
following stable and release branches:

Branch/path                             Hash                     Revision
- -------------------------------------------------------------------------
stable/14/                              426b28fdf700    stable/14-n266333
releng/14.0/                            f5bb597829e1  releng/14.0-n265406
stable/13/                              78345dbd7a00    stable/13-n257186
releng/13.2/                            48598b1670ce  releng/13.2-n254657
- -------------------------------------------------------------------------

Run the following command to see which files were modified by a
particular commit:

# git show --stat <commit hash>

Or visit the following URL, replacing NNNNNN with the hash:


To determine the commit count in a working tree (for comparison against
nNNNNNN in the table above), run:

# git rev-list --count --first-parent HEAD

VII. References


The latest revision of this advisory is available at