OPNSense/src da052d1 — sys/netinet6 ip6_output.c

netinet6: allocate correct size for ip6_fwdtag struct; closes #342

Looks like this has been the case ever since if_index was introduced.
While IPv4 was updated correctly it was forgotten for IPv6.

Submitted by: @pletch
DeltaFile
+1-1sys/netinet6/ip6_output.c
+1-11 files

OPNSense/src c962f76 — sys/conf files, sys/dev/wg if_wg.c

wg: fix the LINT-NOIP build

We don't have anything to tunnel without INET or INET6, so just smack
it with the same config(5) hammer that ovpn uses and exclude it from
such builds.

Reported by:    mjg
Reviewed by:    emaste, markj

(cherry picked from commit 8430de47aa7c004e1330b8f6a3018c360425606e)
DeltaFile
+4-4sys/conf/files
+0-2sys/dev/wg/if_wg.c
+4-62 files

OPNSense/src 22a19c9 — . UPDATING, sys/conf newvers.sh

Add UPDATING entries and bump version

Approved by:    so
DeltaFile
+5-0UPDATING
+1-1sys/conf/newvers.sh
+6-12 files

OPNSense/src 896161b — . ObsoleteFiles.inc

ObsoleteFiles.inc: Add moved certificates

These two moved from trusted to untrusted.

Approved by:    so
Security:       FreeBSD-SA-26:73.caroot
Fixes:          21ac4761428c ("ObsoleteFiles.inc: Add dropped certificates")
(cherry picked from commit dd6a1fef0ed2bf760a294106ab93fbcdcfdcae3d)
DeltaFile
+2-0ObsoleteFiles.inc
+2-01 files

OPNSense/src c4ecddc — . ObsoleteFiles.inc

ObsoleteFiles.inc: Add dropped certificates

Approved by:    so
Security:       FreeBSD-SA-26:73.caroot
Reported by:    michaelo@
Fixes:          82af7f44ebef ("caroot: Regenerate")

(cherry picked from commit 21ac4761428c60c48bb5c3a0367a04dae164c414)
DeltaFile
+7-0ObsoleteFiles.inc
+7-01 files

OPNSense/src a85a932 — secure/caroot/trusted ePKI_Root_Certification_Authority.pem Telia_RSA_TLS_Root_CA_v3.pem, secure/caroot/untrusted SecureSign_Root_CA16.pem Telia_RSA_Email_Root_CA_v3.pem

caroot: Regenerate

Regenerate using certificate data from NSS 3.131.1.

Upstream dropped emSign_ECC_Root_CA_-_G3.pem entirely; we deliberately
move it to untrusted instead to block its reintroduction through e.g.
an outdated copy of security/ca_root_nss.

Approved by:    so
Security:       FreeBSD-SA-26:73.caroot
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D60906

(cherry picked from commit 82af7f44ebefbe46cd635f63db300a066de48ee1)
DeltaFile
+135-0secure/caroot/untrusted/SECOM_SMIME_RSA_Root_CA_2024.pem
+0-134secure/caroot/trusted/ePKI_Root_Certification_Authority.pem
+134-0secure/caroot/trusted/Telia_RSA_TLS_Root_CA_v3.pem
+134-0secure/caroot/untrusted/Telia_RSA_Email_Root_CA_v3.pem
+134-0secure/caroot/trusted/SECOM_TLS_RSA_Root_CA_2024.pem
+132-0secure/caroot/untrusted/SecureSign_Root_CA16.pem
+669-13412 files not shown
+1,027-63818 files

OPNSense/src 01510f0 — . UPDATING, sys/conf newvers.sh

Add UPDATING entries and bump version

Approved by:    so
DeltaFile
+20-0UPDATING
+1-1sys/conf/newvers.sh
+21-12 files

OPNSense/src b38c50d — 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

    [5 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

OPNSense/src a01b404 — 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
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60678
DeltaFile
+15-8usr.sbin/bhyve/pci_hda.c
+15-81 files

OPNSense/src cd14da3 — 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

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

OPNSense/src cf42166 — sys/dev/sound/pcm channel.c buffer.c, tests/sys/sound mmap.c

sound: Revalidate after reacquiring locks when resizing buffers

sndbuf_resize() and sndbuf_remalloc() drop the channel lock in order to
allocate the new buffer(s) with M_WAITOK.  Before doing that they verify
that the buffer is not mapped, but this could change while the lock is
dropped, as there is no higher-level synchronization which prevents
buffer resize (e.g., via the SNDCTL_DSP_SETBLKSIZE ioctl) from happening
concurrently with mmap.  Thus, these checks are insufficient.

Modify sndbuf_resize() and sndbuf_remalloc() to revalidate after
reacquiring the lock.  Extend them to check for a couple of channel
flags, mirroring the check in chn_resizebuf().  Modify chn_resizebuf()
to revalidate state after reacquiring the channel lock.

We could also allocate new buffers with M_NOWAIT and so avoid dropping
the lock.  Then, I think we could go even further and invoke
CHANNEL_SETBLOCKSIZE and CHANNEL_SETFRAGMENTS with the channel lock
held.  But really it would be better to ensure that dsp operations are
serialized; there is no reason for mmap and chn_resizebuf() to be able

    [10 lines not shown]
DeltaFile
+58-0tests/sys/sound/mmap.c
+31-4sys/dev/sound/pcm/buffer.c
+9-2sys/dev/sound/pcm/channel.c
+98-63 files

OPNSense/src cec5431 — 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 are returned to userspace.


    [4 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-4615 files not shown
+123-8221 files

OPNSense/src 2eb84a2 — 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
DeltaFile
+11-6sys/netinet/tcp_stacks/rack_pcm.c
+4-2sys/netinet/tcp_stacks/tcp_rack.h
+15-82 files

OPNSense/src 511326f — sys/netinet tcp_timer.c

tcp: improve handling of stopped timers

When a TCP timer is stopped, t_timers[] is set to SBT_MAX. Adding the
corresponding t_precisions[], if it is not zero, would result in
overflows in tcp_timer_next(). To avoid this, skip stopped timers.

The problem was identified while debugging uperf by Lukas Book and
an initial patch was provided by him. The committed patch was
suggested by glebius.

The problem can be observed by running netstat -nxptcp and looking for
negative timer values and by observing very long running timers in
some cases.

Approved by:            so
Security:               FreeBSD-EN-26:27.tcp
Reported by:            Lukas Book <lkbook at outlook.de>
Reviewed by:            glebius
Differential Revision:  https://reviews.freebsd.org/D58484

    [3 lines not shown]
DeltaFile
+2-0sys/netinet/tcp_timer.c
+2-01 files

OPNSense/src cf81be3 — sbin/hastd proto_socketpair.c proto_impl.h

hastd: Use fixed-length protocol names

All communication between hastd nodes and internally between hastd and
its worker children passes through the same pair of send / receive
functions.  The receive function uses recv(2) with the MSG_WAITALL flag,
which in theory means we should never get a short read.  However, when
handing off a socket to a worker child, we also pass a variable-length
string identifying the type of socket we're passing, and reading this
string relies on a short read.  This used to work because the arrival of
the descriptor would interrupt the recv(2) call, but this bug was fixed
when the AF_UNIX code was rewritten a while ago and hastd has been
broken ever since.

Fixing the length of the protocol name to four characters including the
terminating null solves the short-read bug by never requiring a short
read (nothing else in hastd requires one).

Note that this issue appears to have been reported independently first
by Alessandro Sagratini in PR 292322 and then by Martin Vidovic in

    [14 lines not shown]
DeltaFile
+5-10sbin/hastd/proto.c
+1-1sbin/hastd/proto_socketpair.c
+1-1sbin/hastd/proto_impl.h
+7-123 files

OPNSense/src cbee645 — sbin/hastd nv.c

hastd: Ensure nvpair padding is initialized

The proto-libnv implementation embedded in hastd pads names and values
out to the nearest multiple of eight bytes, but leaves the padding
uninitialized, leaking up to 14 bytes of recycled heap per pair in a
message.

While here, switch from bcopy() to memcpy().

Approved by:    so
Security:       FreeBSD-EN-26:26.hastd
MFC after:      3 days
Reviewed by:    kevans, emaste
Differential Revision:  https://reviews.freebsd.org/D59343

(cherry picked from commit 911bda7cffbf358c4e83ea05cfe980d429aff61c)
(cherry picked from commit 0d0f40cd29d2aba7bfeef8861b73930bbb84308e)
DeltaFile
+3-3sbin/hastd/nv.c
+3-31 files

OPNSense/src fa77e56 — sbin/hastd hast_proto.c

hastd: Fix crash on empty message

A HAST message can be empty, in which case ebuf_add_tail() does nothing
and ebuf_data() returns NULL because the size of the ebuf is zero, but
hast_proto_recv_hdr() asserts that the return value is not NULL,
resulting in an immediate crash if hastctl or hastd receive an empty
message.  This is trivially reproducable by running `hastctl status` or
`hastctl role init` (as the rc script does prior to stopping hastd).

To avoid this, don't try to grow the ebuf or receive additional data
if the header size is zero.

Approved by:    so
Security:       FreeBSD-EN-26:26.hastd
PR:             298085
MFC after:      3 days
Reviewed by:    kevans, gjb
Differential Revision:  https://reviews.freebsd.org/D59306


    [2 lines not shown]
DeltaFile
+8-6sbin/hastd/hast_proto.c
+8-61 files

OPNSense/src bcb8f05 — contrib/tzdata theory.html backzone

contrib/tzdata: import tzdata 2026e

Changes: https://github.com/eggert/tz/blob/2026e/NEWS

Briefly:
    Manitoba moves to permanent -05 on 2026-10-31.

Approved by:    so
Security:       FreeBSD-EN-26:25.tzdata

(cherry picked from commit f11af6535044c8266d52806d72b07e939f94049c)
(cherry picked from commit 961a842fdd3a2e0868444d689acbe7349a55ebfa)
DeltaFile
+98-20contrib/tzdata/northamerica
+38-0contrib/tzdata/NEWS
+26-4contrib/tzdata/europe
+4-1contrib/tzdata/zonenow.tab
+1-1contrib/tzdata/theory.html
+1-1contrib/tzdata/backzone
+168-273 files not shown
+171-309 files

OPNSense/src abbbe67 — sys/netpfil/pf pf.h pf_syncookies.c

pf: Send syncookies from the receiving thread

pf sends outbound packets by offloading them to a single per-vnet SWI handler
through the `V_pf_sendqueue` mbuf queue. A large DDoS attack may overwhelm
that per-vnet queue with syncookie packets and cause contention in the SWI
handler that negatively affects other pf operations.

Fix this by sending the initial syncookie challenge from the context
of the receiving thread. This avoids the syncookie-induced contention on
the `pf_intr` mbuf queue.

Sponsored by:   Klara, Inc.
Sponsored by:   Entersekt
MFC after:      3 weeks
Reviewed by:    kp
Differential Revision:  https://reviews.freebsd.org/D59068

(cherry picked from commit bf05236727cf367ee8e22ef47febebb319db9ddb)
DeltaFile
+39-28sys/netpfil/pf/pf.c
+28-3sys/netpfil/pf/pf_syncookies.c
+8-1sys/netpfil/pf/pf.h
+75-323 files

OPNSense/src a1e084d — usr.sbin/bsdinstall/scripts jail auto

bsdinstall: Drop "Technology preview" from package sets

And refer to dist sets as "legacy."

We're planning on turning off dist sets in 16.0 (the code will remain
in the tree, but disabled by default) so we'd like to encourage users
to install 15.2 systems using package sets in order to ease the upgrade
path to 16.0.

Reviewed by:    cperciva
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D54156

(cherry picked from commit dac74b20c706b1f73986fb40dac27ed85c1d2850)
DeltaFile
+2-2usr.sbin/bsdinstall/scripts/jail
+2-2usr.sbin/bsdinstall/scripts/auto
+4-42 files

OPNSense/src 412e762 — sys/dev/hyperv/vmbus hyperv_mmu.c

hyperv: two possible issues with patch

PR: https://forum.opnsense.org/index.php?topic=53114.msg275453#msg275453
DeltaFile
+2-2sys/dev/hyperv/vmbus/hyperv_mmu.c
+2-21 files

OPNSense/src 86ceb5a — sys/dev/pci pci_pci.c

pcib: Only apply ARI translation to a bridge's own secondary bus

ARI changes RID interpretation only for the device on a downstream
port's secondary bus.  pcib_xlate_ari() applied that translation to
every config access through an ARI-enabled bridge, including cycles
forwarded to a subordinate bus.

A non-zero slot on a subordinate bus then panics an INVARIANTS kernel
and is misrouted otherwise.  Translate only when the access targets
this bridge's secondary bus.

Reviewed by:    kib, jhb
Fixes:          55d3ea1731d1 ("Add support for PCIe ARI")
Sponsored by:   AMD
Differential Revision:  https://reviews.freebsd.org/D60033
(cherry picked from commit 10409ee40baf593b810cd0140f3c2f0d737c1a65)
DeltaFile
+2-1sys/dev/pci/pci_pci.c
+2-11 files

OPNSense/src 06503b4 — sys/opencrypto ktls_ocf.c

ktls CBC decrypt: Avoid creating zero length iovec entries

If an mbuf's length in the chain for an encrypted TLS record exactly
matches the remaining length of header bytes to skip, skip the mbuf
entirely rather than adding a zero-length iovec entry.

Sponsored by:   Chelsio Communications

(cherry picked from commit 1756d1cab3ce28085eec94a45c557e1af265ccd0)
DeltaFile
+1-1sys/opencrypto/ktls_ocf.c
+1-11 files

OPNSense/src 89187fb — sys/net/route fib_algo.c

route/fib_algo: Respect immediate_sync in fd_ref_nhop

Now fd_ref_nhop() returns zero for cross family routes,
Do not schedule nhop references and try to rebuild it immediately
for connected and static routes.

PR:     298733
Fixes:  633438224304 ("route/fib_algo: Fix nexthop index ...")
(cherry picked from commit 3d030136ad1906e6d463673a8d2ef313eb054fb3)
DeltaFile
+4-2sys/net/route/fib_algo.c
+4-21 files

OPNSense/src 60a50f0 — sys/net/route fib_algo.c

route/fib_algo: Fix FIB_ALGO without ROUTE_MPATH option

The ROUTE_MPATH compile option has been removed from CURRENT
branch. Therefore, use the ROUTE_MPATH macro for nhgrp headers.

PR:     299210
Fixes:  891bda143f6b ("route/fib_algo: Fix nexthop index ...")
Differential Revision:  https://reviews.freebsd.org/D59552

(cherry picked from commit 63343822430453f4add20bcbfa134c99132361df)
DeltaFile
+2-1sys/net/route/fib_algo.c
+2-11 files

OPNSense/src 8c18f15 — sys/dev/usb/net usb_ethernet.c, sys/net80211 ieee80211_freebsd.c

SYSCTL(9): Retire SYSCTL_NODE_CHILDREN()

It does not provide value over the pre-existing SYSCTL_STATIC_CHILDREN()
macro, which is widely used in the tree, whereas SYSCTL_NODE_CHILDREN()
is not.

Reviewed by:    markj
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60009

(cherry picked from commit 4672ad1f16092c146261b4de485ec5eb5e8d127b)
DeltaFile
+0-3sys/sys/sysctl.h
+1-1sys/net80211/ieee80211_freebsd.c
+1-1sys/dev/usb/net/usb_ethernet.c
+2-53 files

OPNSense/src 309914e — sys/dev/vnic thunder_bgx_fdt.c

vnic: Add missing #include

Reported by:    bz, olivier
Fixes:          6dc813301a17 ("sys: Use is_pci_device instead of direct comparisons to devclasses")
Sponsored by:   Chelsio Communications
(cherry picked from commit 8c9dc47b5fcaf58a89b1511118b78a65737b20cc)
DeltaFile
+1-0sys/dev/vnic/thunder_bgx_fdt.c
+1-01 files

OPNSense/src 0a7d52e — sys/dev/clk clk_fixed.c, sys/dev/dwc if_dwc.c

ofw: bool-ify OF_hasprop()

Adjust the function signature and the few callers that don't treat it
this way already.

This is style only; no functional change intended.

Reviewed by:    andrew
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D56203

(cherry picked from commit b60cd486a652f0427e525b4482ac598be5460459)
DeltaFile
+4-4sys/dev/dwc/if_dwc.c
+2-2sys/dev/ofw/openfirm.c
+1-1sys/dev/usb/net/if_smsc.c
+1-1sys/dev/ofw/openfirm.h
+1-1sys/dev/clk/clk_fixed.c
+9-95 files

OPNSense/src ed7f810 — sys/dev/ofw ofw_bus_subr.h ofw_bus_subr.c

kern: ofw: provide ofw_bus_destroy_iinfo to teardown interrupt-map

For symmetry with ofw_bus_setup_iinfo, the next commits will use it to
properly cleanup on failure in bcm2838_pci.

Reviewed by:    andrew

(cherry picked from commit b230a7b9a52c0fc948f4f1dcd1225a94674073f6)
DeltaFile
+12-0sys/dev/ofw/ofw_bus_subr.c
+1-0sys/dev/ofw/ofw_bus_subr.h
+13-02 files

OPNSense/src 7e3d386 — sys/dev/aq aq_ring.c aq_hw.c

sys: Import snapshot of Aquantia ACQ107 vendor driver

Obtained from https://github.com/Aquantia/aqtion-freebsd commit
c61d27b1d94af72c642deefa0595884481ea7377.

This is not using a vendor branch.  The formerly-upstream repo is
abandoned and I do not believe it will receive updates.  This initial
import serves as a snapshot of the vendor code, but from here we will
iterate on it in the tree as our own code.

Bug fixes, code cleanup, and build infrastructure will follow.

NetBSD and OpenBSD have derivatives of this driver (with additional
hardware support).  We can look to changes in those drivers, and the
Linux driver, to add support here.

Reviewed by:    adrian
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D53813

    [2 lines not shown]
DeltaFile
+3,335-0sys/dev/aq/aq_hw_llh_internal.h
+1,986-0sys/dev/aq/aq_hw_llh.c
+1,329-0sys/dev/aq/aq_main.c
+1,176-0sys/dev/aq/aq_hw_llh.h
+907-0sys/dev/aq/aq_hw.c
+581-0sys/dev/aq/aq_ring.c
+9,314-012 files not shown
+12,109-018 files