HardenedBSD/src 91b283d — sys/dev/iwm if_iwm_pcie_trans.h if_iwm_pcie_trans.c

Merge remote-tracking branch 'rad/hardened/current/master' into hardened/current/pledge
DeltaFile
+101-19sys/dev/iwm/if_iwm_phy_ctxt.c
+87-21sys/dev/iwm/if_iwm.c
+22-6sys/dev/iwm/if_iwm_sta.c
+18-0sys/dev/iwm/if_iwm_util.h
+7-6sys/dev/iwm/if_iwm_pcie_trans.c
+3-3sys/dev/iwm/if_iwm_pcie_trans.h
+238-554 files not shown
+248-5810 files

HardenedBSD/src 606ecfe — sys/fs/nfsserver nfs_nfsdsocket.c

Merge remote-tracking branch 'rad/hardened/15-stable/main' into hardened/15-stable/pledge
DeltaFile
+7-0sys/fs/nfsserver/nfs_nfsdsocket.c
+7-01 files

HardenedBSD/src db34b21 — sys/dev/iwm if_iwm_pcie_trans.h if_iwm_pcie_trans.c

Merge branch 'freebsd/current/main' into hardened/current/master
DeltaFile
+101-19sys/dev/iwm/if_iwm_phy_ctxt.c
+87-21sys/dev/iwm/if_iwm.c
+22-6sys/dev/iwm/if_iwm_sta.c
+18-0sys/dev/iwm/if_iwm_util.h
+7-6sys/dev/iwm/if_iwm_pcie_trans.c
+3-3sys/dev/iwm/if_iwm_pcie_trans.h
+238-554 files not shown
+248-5810 files

HardenedBSD/src 5b15afe — sys/fs/nfsserver nfs_nfsdsocket.c

Merge branch 'freebsd/15-stable/main' into hardened/15-stable/main
DeltaFile
+7-0sys/fs/nfsserver/nfs_nfsdsocket.c
+7-01 files

HardenedBSD/src f84cdc2 — sys/netpfil/pf if_pfsync.c

pfsync: use result of m_pullup()
DeltaFile
+2-2sys/netpfil/pf/if_pfsync.c
+2-21 files

HardenedBSD/src c27ed49 — sys/dev/iwm if_iwm_pcie_trans.h if_iwm_pcie_trans.c

iwm: add return status to set/clear prph bits

This brings these functions inline with OpenBSD

Locally tested:

* 3160, STA mode
* 7260, STA mode
* 8260, STA mode
* 9260, STA mode

Obtained from: OpenBSD a6e25c727a2214219715b51ba6af2221d7e0d674

Reviewed by:    emaste
Differential Revision:  https://reviews.freebsd.org/D60211
DeltaFile
+7-6sys/dev/iwm/if_iwm_pcie_trans.c
+3-3sys/dev/iwm/if_iwm_pcie_trans.h
+10-92 files

HardenedBSD/src 103a4f0 — sys/dev/iwm if_iwmvar.h if_iwm_phy_ctxt.h

iwm: update phy context routines; add HT channel width parameter

Update the phy context routines to match what the openbsd snapshot
is doing.  This involves some HT channel width stuff which although
I am not doing HT right now, it was juts easier to sync these
entirely versus just a partial sync.

* Update the phy context routines to match what openbsd is doing
* Although the openbsd driver has an iwm_phy_ctxt_update() routine
  instead of add and modify, I'm leaving it as-is for now.
  A bunch of refactoring is going to need to be done to properly
  use an iwm_phy_ctxt_update() call and I didn't want to tackle
  that in here.
* Add a UHB firmware capability phy context call; I can't test it
  but it's mostly copy/paste.
* Add in a util to turn ieee80211_channel into the 'sco' variable
  (the HT low/hi parameter) since it's done in openbsd in a
  slightly different way.


    [10 lines not shown]
DeltaFile
+101-19sys/dev/iwm/if_iwm_phy_ctxt.c
+18-0sys/dev/iwm/if_iwm_util.h
+6-2sys/dev/iwm/if_iwm.c
+5-0sys/dev/iwm/if_iwm_phy_ctxt.h
+1-0sys/dev/iwm/if_iwmvar.h
+131-215 files

HardenedBSD/src ed92055 — sys/dev/iwm if_iwm.c

iwm: bring IWM_CSR_HW_IF_CONFIG_REG programming in line with openbsd

bring the iwm_nic_config() / IWM_CSR_HW_IF_CONFIG_REG programming
in line with openbsd.

Locally tested:

* 3160 STA mode
* 7260 STA mode
* 8260 STA mode
* 9260 STA mode

Obtained from: OpenBSD a6e25c727a2214219715b51ba6af2221d7e0d674

Differential Revision:  https://reviews.freebsd.org/D60081
DeltaFile
+8-5sys/dev/iwm/if_iwm.c
+8-51 files

HardenedBSD/src 8d53176 — sys/dev/iwm if_iwmvar.h if_iwm_util.c

iwm: add DQA (dynamic queue assignment)

This is the minimum set of DQA bits from iwm at the given openbsd
commit place.

* add a method to map ac to queue / ring
* use the DQA command queue if needed
* glue to wire it up

Locally tested:

* Intel 7260, STA mode
* Intel 9260, STA mode
* Intel 8260, STA mode
* Intel 3160, STA mode

Obtained from: OpenBSD a6e25c727a2214219715b51ba6af2221d7e0d674

Differential Revision:  https://reviews.freebsd.org/D60080
DeltaFile
+73-14sys/dev/iwm/if_iwm.c
+22-6sys/dev/iwm/if_iwm_sta.c
+1-1sys/dev/iwm/if_iwm_util.c
+1-0sys/dev/iwm/if_iwmvar.h
+97-214 files

HardenedBSD/src e4a203a — sys/fs/nfsserver nfs_nfsdsocket.c

nfs_nfsdsocket.c: Fix "nfsstats -d" for ERELOOKUP

When ERELOOKLUP is returned by a file operation
(always vop_lookup?) the operation is retried without
doing nfsrv_statsend().

This patch fixes this problem,

The only effect of the bug was bogus "nfsstat -d"
output.

PR:     298534

(cherry picked from commit 9a237074d380233e93a17ddee6b155cc2f90ee96)
DeltaFile
+7-0sys/fs/nfsserver/nfs_nfsdsocket.c
+7-01 files

HardenedBSD/src 4dd9632 — lib/libthr/thread thr_init.c, sys/kern subr_epoch.c

Merge remote-tracking branch 'rad/hardened/current/master' into hardened/current/pledge
DeltaFile
+99-65usr.sbin/bhyve/pci_xhci.c
+159-0tests/sys/netinet6/ndp.sh
+58-9lib/libthr/thread/thr_init.c
+19-42sys/kern/subr_epoch.c
+40-19usr.sbin/bhyve/pci_fbuf.c
+58-0tests/sys/sound/mmap.c
+433-13567 files not shown
+948-31173 files

HardenedBSD/src cc9a578 — sys/fs/fuse fuse_vnops.c fuse_ipc.c, tests/sys/fs/fusefs utils.hh mockfs.cc

Merge remote-tracking branch 'rad/hardened/15-stable/main' into hardened/15-stable/pledge
DeltaFile
+75-11tests/sys/fs/fusefs/pre-init.cc
+31-0sys/fs/fuse/fuse_vfsops.c
+1-23sys/fs/fuse/fuse_ipc.c
+0-14sys/fs/fuse/fuse_vnops.c
+8-1tests/sys/fs/fusefs/mockfs.cc
+2-0tests/sys/fs/fusefs/utils.hh
+117-493 files not shown
+119-529 files

HardenedBSD/src 5d9fdf5 — tests/sys/netpfil/common nat.sh utils.subr, usr.bin/diff diff.h diff.1

Merge branch 'freebsd/current/main' into hardened/current/master
DeltaFile
+7-7tests/sys/netpfil/common/utils.subr
+10-3usr.bin/diff/diff.c
+5-2usr.bin/diff/diffreg.c
+4-1usr.bin/diff/diff.1
+1-1tests/sys/netpfil/common/nat.sh
+1-0usr.bin/diff/diff.h
+28-146 files

HardenedBSD/src 74433b8 — sys/fs/fuse fuse_vnops.c fuse_ipc.c, tests/sys/fs/fusefs utils.hh mockfs.cc

Merge branch 'freebsd/15-stable/main' into hardened/15-stable/main
DeltaFile
+75-11tests/sys/fs/fusefs/pre-init.cc
+31-0sys/fs/fuse/fuse_vfsops.c
+1-23sys/fs/fuse/fuse_ipc.c
+0-14sys/fs/fuse/fuse_vnops.c
+8-1tests/sys/fs/fusefs/mockfs.cc
+2-0tests/sys/fs/fusefs/utils.hh
+117-493 files not shown
+119-529 files

HardenedBSD/src c6379cc — sys/contrib/zlib gzwrite.c

Fix buffer overflow bug in non-blocking gzwrite.

This addresses CVE-2026-85091.

(cherry picked from commit df84af25dc1942490e1d1c899a07619152a46148)
(cherry picked from commit f3f5af331c741c34b3b0a2ac8c64f2a458f84e6d)
Signed-off-by: Shawn Webb <shawn.webb at hardenedbsd.org>
DeltaFile
+4-1sys/contrib/zlib/gzwrite.c
+4-11 files

HardenedBSD/src 606485b — sys/fs/devfs devfs_vnops.c, tests/sys/kern inotify_test.c

devfs: Explicitly disable inotify

In principle, inotify can be used to leak timing information about I/O
device accesses by privileged process, which might be sensitive, e.g.,
in the case of /dev/input.  See https://inoti.fyi/#1-linux-inter-keystroke-timing

In practice this does not work since I/O to devfs nodes does not go
through vnodes, so the INOTIFY() calls in various VOP hooks do not fire.
But, let's explicitly define a no-op VOP_INOTIFY to help ensure that no
one tries to "fix" this bug.

Alternately we could simply ignore VCHR/VBLK vnodes in vn_inotify().
However, maybe someday it'll be desirable to enable inotify for specific
device files, in which case the filtering should live in devfs.

Add a regression test.

Reported by:    Sudheendra Raghav Neela <sneela at tugraz.at>
Reviewed by:    kib

    [6 lines not shown]
DeltaFile
+35-0tests/sys/kern/inotify_test.c
+18-0sys/fs/devfs/devfs_vnops.c
+53-02 files

HardenedBSD/src 532ee0d — sys/dev/sound/pci es137x.c envy24ht.c, sys/dev/sound/pcm channel.c

sound: Check for errors from sndbuf_resize()

Most implementations of CHANNEL_SETBLOCKSIZE and CHANNEL_SETFRAGMENTS
were not checking this.  This is probably not a big problem: it's
unlikely for sndbuf_resize() to fail due to the refcount check in this
case since it's operating on the hardware buffer, which doesn't get
mmaped.  But, I will add more reasons for it to fail in the next patch,
so let's be more careful.

This change modifies various CHANNEL_SETBLOCKSIZE implementations to
check for errors.  In some cases I reordered things to avoid updating
driver state until after sndbuf_resize() succeeds.

Return 0 from CHANNEL_SETBLOCKSIZE to indicate an error, as it otherwise
returns the new block size.  We could change the interface to return
both an error number and a block size, but that would break at least one
out-of-tree driver and I wish to avoid that here.  Make sure that errors
from CHANNEL_SETFRAGMENTS and CHANNEL_SETBLOCKSIZE are returned to
userspace.

    [9 lines not shown]
DeltaFile
+28-9sys/dev/sound/pcm/channel.c
+13-10sys/dev/sound/pci/ich.c
+9-7sys/dev/sound/pci/envy24ht.c
+9-7sys/dev/sound/pci/envy24.c
+5-9sys/dev/sound/usb/uaudio.c
+8-4sys/dev/sound/pci/es137x.c
+72-4617 files not shown
+126-8423 files

HardenedBSD/src 1617321 — usr.sbin/bhyve bhyvegc.h rfb.c

bhyve: Fix handling of framebuffer resizing

The rfb code maintains an array of CRCs for 32x32 tiles in the
framebuffer.  This array is sized statically based on the rfb code's
notion of the maximum framebuffer size, which changed in commit
fb51ddb20d57 without updating the rfb code.

Morever, writes to the framebuffer BAR can modify the recorded height
and width of the framebuffer.  These values were not validated against
the maximum at all, unlike the parameters set via bhyve config.

Fix these problems:
- Define the maximum width and height in a shared header file so that
  they do not get out of sync again.
- In pci_fbuf_render(), don't resize the console if the new dimensions
  are too large.
- Add a mutex to synchronize framebuffer BAR I/O with the rfb thread.

Approved by:    so

    [8 lines not shown]
DeltaFile
+40-19usr.sbin/bhyve/pci_fbuf.c
+3-3usr.sbin/bhyve/rfb.c
+3-0usr.sbin/bhyve/bhyvegc.h
+46-223 files

HardenedBSD/src 6f8290d — usr.sbin/bhyve pci_hda.c

bhyve: Improve HDA stream descriptor validation

The length of each block in the stream must be non-zero.  This is
assumed in hda_transfer(), otherwise an out-of-bounds read or write is
possible.

Use atomic loads to access stream descriptor fields, since they are
guest-controlled.  Make sure that the descriptor array is suitably
aligned so that we can drop the __packed annotation from the structure
definition; per section 3.3.42 of the HDA spec the BDL pointer is
supposed to be 128-byte aligned, in fact.

Approved by:    so
Security:       FreeBSD-SA-26:72.bhyve
Security:       CVE-2026-101310
Reported by:    Brian Delgado from Intel using Anthropic Opus 4.8
Reviewed by:    christos
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60678

    [3 lines not shown]
DeltaFile
+12-8usr.sbin/bhyve/pci_hda.c
+12-81 files

HardenedBSD/src 3fa7cca — usr.sbin/bhyve pci_xhci.c

bhyve: Fix handling of the xhci event ring

rts->erst_p and rts->erstba_p are pointers to guest-controlled memory
which describe the event rings and pending event array, respectively.
The device model was not validating the size nor saving the value.
As a result, the bounds checks in pci_xhci_insert_event() were
susceptible to TOCTOU races.

Fix pci_xhci_rtsregs_write() to save the ring size in a softc field.
Validate that the size isn't larger than the maximum allowed by the XHCI
specification (64KB, or 4096 TRBs).

When processing TRBs, make sure we don't load fields more than once.
Make sure that pci_xhci_trb_next() doesn't return a pointer to host
memory.  When handling ERDP writes, make sure that the guest-supplied
address is actually a pointer into the TRB array, and ignore the write
if not.

Approved by:    so

    [7 lines not shown]
DeltaFile
+99-65usr.sbin/bhyve/pci_xhci.c
+99-651 files

HardenedBSD/src 4c38311 — sys/netinet/tcp_stacks tcp_rack.h rack_pcm.c

tcp/rack: Fix a potential overflow in rack_update_pcm_ack()

The RACK stack's path capacity measurement module maintains an array of
samples, updated when the stack receives an ACK.  The array grows as
needed, but code which handles the expansion is susceptible to remotely
triggerable overflow.  This could lead to underallocation and a ~512KB
out-of-bounds write.

Fix this by bounding the sample array size.

Approved by:    so
Security:       FreeBSD-SA-26:70.tcp
Security:       CVE-2026-101307
Reviewed by:    glebius, markj
Reported by:    Nozomi Networks Security Research

(cherry picked from commit 9a406a9ec399cced14ce5d204ba3fd383544b47f)
Signed-off-by: Shawn Webb <shawn.webb at hardenedbsd.org>
DeltaFile
+11-6sys/netinet/tcp_stacks/rack_pcm.c
+4-2sys/netinet/tcp_stacks/tcp_rack.h
+15-82 files

HardenedBSD/src e211e04 — sys/amd64/vmm x86.c

amd64/vmm: Don't advertise support for performance counters

vmm doesn't implement them, and after commit 2272fac218a8
("hwpmc: Add support for AMD-only IRPERF in hwpmc PERF class"), FreeBSD
guests fail to boot since they access the unimplemented IRPERF MSR.

MFC after:      1 week

(cherry picked from commit c83e075d72f62c91cb27dd644a62d6a6f5bd56ba)
Signed-off-by: Shawn Webb <shawn.webb at hardenedbsd.org>
DeltaFile
+1-2sys/amd64/vmm/x86.c
+1-21 files

HardenedBSD/src 4d01cfe — . ObsoleteFiles.inc, share/keys/hbsd-update/trusted Makefile dnssec.key-2016-07-30

HBSD: Garbage collect old DNSSEC root key material

This completes the migration to the new DNSSEC key material.

Signed-off-by:  Shawn Webb <shawn.webb at hardenedbsd.org>
MFC-to:         15-STABLE
X-MFC-with:     505acb182e96baee81bb398c490555b681565f8e
(cherry picked from commit 4eeb3fe08eae9b1978b812f22c1a3d9045d8c823)
Signed-off-by: Shawn Webb <shawn.webb at hardenedbsd.org>
DeltaFile
+0-17share/keys/hbsd-update/trusted/dnssec.key-2016-07-30
+3-0ObsoleteFiles.inc
+1-1share/keys/hbsd-update/trusted/Makefile
+4-183 files

HardenedBSD/src c30a321 — usr.bin/diff diff.h diff.1

diff: support -qq to output absolutely nothing

This is similar to `cmp -s`, but can be combined with:
-B --ignore-blank-lines
-b --ignore-space-change
-w --ignore-all-space

To only report a difference if it doesn't involve whitespace

Reviewed by:    des, bapt, markj (previous version), ziaee (man page)
MFC after:      1 week
Sponsored by:   Klara, Inc.
Differential Revision:  https://reviews.freebsd.org/D46717
DeltaFile
+10-3usr.bin/diff/diff.c
+5-2usr.bin/diff/diffreg.c
+4-1usr.bin/diff/diff.1
+1-0usr.bin/diff/diff.h
+20-64 files

HardenedBSD/src 980a797 — share/keys/hbsd-update/trusted Makefile

HBSD: Update the link to the new DNSSEC key

This is that follow-up commit mentioned in the commit referenced below.
Another follow-up commit will revoke the old DNSSEC key.

Signed-off-by:  Shawn Webb <shawn.webb at hardenedbsd.org>
MFC-to:         15-STABLE
X-MFC-with:     0429b93d1e93f012ffffe9f068d3b0a4238af8a6
(cherry picked from commit 505acb182e96baee81bb398c490555b681565f8e)
Signed-off-by: Shawn Webb <shawn.webb at hardenedbsd.org>
DeltaFile
+2-2share/keys/hbsd-update/trusted/Makefile
+2-21 files

HardenedBSD/src 240987e — share/keys/hbsd-update/trusted dnssec.key-2026-10-13

HBSD: Update DNSSEC root key material

This key material was generated with the following command:

==== BEGIN COMMAND ====
$ drill -t DNSKEY . > \
    share/keys/hbsd-update/trusted/dnssec.key-2026-10-13
==== END COMMAND ====

The root DNSSEC key material was updated on 11 Oct 2026.

Note that this commit only creates the new file. It does not switch to
this new key material. Updating the link will be committed in a
follow-up commit.

Signed-off-by:  Shawn Webb <shawn.webb at hardenedbsd.org>
See-Also:       https://www.icann.org/resources/pages/ksk-rollover-en
MFC-to:         15-STABLE
(cherry picked from commit 0429b93d1e93f012ffffe9f068d3b0a4238af8a6)
Signed-off-by: Shawn Webb <shawn.webb at hardenedbsd.org>
DeltaFile
+18-0share/keys/hbsd-update/trusted/dnssec.key-2026-10-13
+18-01 files

HardenedBSD/src 1da1ad3 — tests/sys/netpfil/common nat.sh utils.subr

tests/netpfil: reference manual pages in atf_skip statements

For those modules that don't have a manual page spell out full name of a
loadable module.
DeltaFile
+7-7tests/sys/netpfil/common/utils.subr
+1-1tests/sys/netpfil/common/nat.sh
+8-82 files

HardenedBSD/src 169e254 — sys/fs/fuse fuse_vnops.c fuse_ipc.c, tests/sys/fs/fusefs mockfs.hh mockfs.cc

fusefs: fix a deadlock caused by daemons that never initialize

If a daemon never responds to FUSE_INIT, but some process attempts to
access the mountpoint, and a different process (possibly the daemon
itself) attempts to unmount, a deadlock would result.

Fix this bug by blocking any thread that enters fuse_vfsop_root until
the daemon responds to FUSE_INIT or it times out.  That will block any
thread attempting to lookup a path in the fuse mountpoint, before it
even gets to fuse VOPs.  Remove less thorough initialization checks in
fuse_ticket_fetch and fuse_vnop_access that are no longer necessary.
And add a test case.

PR:             287431
Sponsored by:   ConnectWise
Reviewed by:    js
Differential Revision: https://reviews.freebsd.org/D59737

(cherry picked from commit 0bd6348b52e1991fafc55128173c989dab36dfd9)
DeltaFile
+75-11tests/sys/fs/fusefs/pre-init.cc
+31-0sys/fs/fuse/fuse_vfsops.c
+1-23sys/fs/fuse/fuse_ipc.c
+0-14sys/fs/fuse/fuse_vnops.c
+8-1tests/sys/fs/fusefs/mockfs.cc
+1-1tests/sys/fs/fusefs/mockfs.hh
+116-503 files not shown
+119-529 files

HardenedBSD/src d743728 — sys/dev/sound/pci ich.c, sys/dev/sound/pcm buffer.c channel.c

Merge remote-tracking branch 'rad/freebsd/current/main' into hardened/current/master
DeltaFile
+99-65usr.sbin/bhyve/pci_xhci.c
+40-19usr.sbin/bhyve/pci_fbuf.c
+58-0tests/sys/sound/mmap.c
+37-11sys/dev/sound/pcm/channel.c
+31-4sys/dev/sound/pcm/buffer.c
+13-10sys/dev/sound/pci/ich.c
+278-10932 files not shown
+404-19338 files

HardenedBSD/src 454e9c5 — lib/libthr/thread thr_private.h thr_init.c

HBSD: Various fixups in libthr

HardenedBSD has diverged ever so slightly in the threading library. This
caused a world build issue after recent changes by FreeBSD.

Signed-off-by:  Shawn Webb <shawn.webb at hardenedbsd.org>
MFC-to:         15-STABLE
X-MFC-with:     5fb07bbcd5d5d9a865d9e7765fb93e9ba5edef1c
DeltaFile
+2-2lib/libthr/thread/thr_init.c
+2-0lib/libthr/thread/thr_private.h
+4-22 files