OPNSense/src d958a3csys/net if_tuntap.c

if_tuntap: make SIOCIFDESTROY interruptible

There's no good justification to permanently hang a thread until the
tunnel can be destroyed.  Make it interruptible so that the admin can
^C it and remedy the situation if something erroneously has the tunnel
open, rather than forcing them to open another shell to resolve it.

Reviewed by:    markj

(cherry picked from commit 274bf7c8ae7e7b51853cd541481985f0e687f10e)
DeltaFile
+26-14sys/net/if_tuntap.c
+26-141 files

OPNSense/src 9c721b6sys/netpfil/ipfw/nptv6 nptv6.c

ipfw_nptv6: fix handling the ifaddr removal event

The result of IN6_ARE_MASKED_ADDR_EQUAL() macro is not an integer, so
threat it as a boolean value.

PR:             294114
Reported by:    Peter Much <pmc citylink dinoex sub org>

(cherry picked from commit d9d7b59486499615a5fdce54443ce62aecf557e8)
DeltaFile
+2-2sys/netpfil/ipfw/nptv6/nptv6.c
+2-21 files

OPNSense/src 8aca16ccontrib/libpcap configure pcap-linux.c, lib/libpcap config.h

libpcap: Update to 1.10.6

Changes:        https://raw.githubusercontent.com/the-tcpdump-group/libpcap/89e982c37c36ad0bf9f10b7ded421cb42422effa/CHANGES
Reviewed by:    bms, emaste
Obtained from:  https://www.tcpdump.org/release/libpcap-1.10.6.tar.gz
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D55545
Differential Revision:  https://reviews.freebsd.org/D55858

(cherry picked from commit 16cef5f7a65588def71db4fdfa961f959847e3b6)
DeltaFile
+361-360contrib/libpcap/configure
+566-102contrib/libpcap/pcap-linux.c
+404-50contrib/libpcap/nametoaddr.c
+225-123contrib/libpcap/pcap-dlpi.c
+245-101contrib/libpcap/gencode.c
+209-54lib/libpcap/config.h
+2,010-79067 files not shown
+3,572-1,50173 files

OPNSense/src 39233c7. UPDATING, sys/conf newvers.sh

Add UPDATING entries and bump version

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

OPNSense/src 7b7e6d7lib/libnv/tests nvlist_send_recv_test.c, sys/contrib/libnv nvlist.c

libnv: fix heap overflow in nvlist_recv()

nvlist_check_header() validated nvlh_size for overflow before
performing conversion. An mallicous user can set
NV_FLAG_BIG_ENDIAN in the header and craft nvlh_size so that
the orginall value passes the check, but after the conversion the
sizeof(nvlist_header) + size can overflow.
This can lead to a heap buffer overflow.

Approved by:    so
Security:       FreeBSD-SA-26:17.libnv
Security:       CVE-2026-35547
Fixes:          36fa90dbde0060aacb5677d0b113ee168e839071
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D56342
DeltaFile
+57-0lib/libnv/tests/nvlist_send_recv_test.c
+5-4sys/contrib/libnv/nvlist.c
+62-42 files

OPNSense/src 4b28a8alib/libnv msgio.c, lib/libnv/tests nvlist_send_recv_test.c

libnv: switch fd_wait() from select(2) to poll(2)

The previous implementation used FD_SET() on a stack-allocated fd_set,
which is an out-of-bounds write whenever the socket fd is >= FD_SETSIZE
(1024).

Approved by:    so
Security:       FreeBSD-SA-26:16.libnv
Security:       CVE-2026-39457
Reported by:    Joshua Rogers of AISLE Research Team (https://aisle.com/)
Reviewed by:    markj
Differential Revision:  https://reviews.freebsd.org/D56689
DeltaFile
+56-0lib/libnv/tests/nvlist_send_recv_test.c
+6-6lib/libnv/msgio.c
+62-62 files

OPNSense/src ba0c984lib/libnv/tests nvlist_send_recv_test.c Makefile, sys/contrib/libnv nv_impl.h nvlist.c

libnv: add tests to verify potential overflow issues

Approved by:    so
Differential Revision:  https://reviews.freebsd.org/D46131

(cherry picked from commit 241a7ddd7112982ed41ccdd047c1dad59ee0256e)
DeltaFile
+193-0lib/libnv/tests/nvlist_send_recv_test.c
+9-0lib/libnv/tests/Makefile
+8-0sys/contrib/libnv/nv_impl.h
+0-7sys/contrib/libnv/nvlist.c
+210-74 files

OPNSense/src 454e1b7lib/libnv/tests nv_array_tests.cc

libnv: add test to verify null termination of string in array

Approved by:    so
Differential Revision:  https://reviews.freebsd.org/D46138

(cherry picked from commit 2981431e044fae3bc87e6fa891b8230b484dc84b)
DeltaFile
+56-2lib/libnv/tests/nv_array_tests.cc
+56-21 files

OPNSense/src a40d4f3sbin/dhclient dhclient.c

dhclient: Fix reallocation of dhclient script environments

When the number of DHCP options exceeds a threshold, script_set_env()
will reallocate the environment, stored as an array of pointers.  The
calculation of the array size failed to multiply by the pointer size,
resulting in a smaller than expected buffer which admits out-of-bounds
writes.

Approved by:    so
Security:       FreeBSD-SA-26:15.dhclient
Security:       CVE-2026-42511
Reported by:    Joshua Rogers of AISLE Research Team (https://aisle.com/)
DeltaFile
+2-2sbin/dhclient/dhclient.c
+2-21 files

OPNSense/src 153f069sbin/dhclient dhclient.c

dhclient: Check for unexpected characters in some DHCP server options

Some options are written directly to the lease file, which may be parsed
by subsequent dhclient invocations.  We must make sure that a malicious
server can't control the "medium" field of a lease definition, otherwise
they can achieve RCE by injecting one into the lease file, whereupon it
will be passed to dhclient-script, which passes it through eval.

Approved by:    so
Security:       FreeBSD-SA-26:12.dhclient
Security:       CVE-2026-42511
Reported by:    Joshua Rogers of AISLE Research Team (https://aisle.com/)
DeltaFile
+12-0sbin/dhclient/dhclient.c
+12-01 files

OPNSense/src 810cfd4sys/kern kern_exec.c

execve: Fix an operator precedence bug

The buggy version allowed userspace to overflow the copy into adjacent
execve KVA regions, which enables, among other things, injecting
environment variables into privileged processes.

Approved by:    so
Security:       FreeBSD-SA-26:13.exec
Security:       CVE-2026-7270
Reported by:    Ryan Austin of Calif.io
Reviewed by:    brooks, kib
Fixes:          f373437a01a3 ("Add helper functions to copy strings into struct image_args.")
Differential Revision:  https://reviews.freebsd.org/D56665
DeltaFile
+1-1sys/kern/kern_exec.c
+1-11 files

OPNSense/src 2ef2736sys/netpfil/pf pf.c

pf: improve SCTP validation

As per RFC5061 "4.2.  New Parameter Types" the add/delete IP address
parameters (0xc001, 0xc002) may not be present in an INIT or INIT-ACK
chunk. They are only allowed to be present in an ASCONF chunk.

This also prevents unbounded recursion while parsing an SCTP packet.

Approved by:    so
Security:       FreeBSD-SA-26:14.pf
Security:       CVE-2026-7164
PR:             294799
Reported by:    Igor Gabriel Sousa e Souza
Sponsored by:   Orange Business Services
DeltaFile
+13-5sys/netpfil/pf/pf.c
+13-51 files

OPNSense/src d9320cdsys/amd64/amd64 mp_machdep.c

amd64: fix INVLPGB range invalidation

AMD64 Architecture Programmer's Manual Volume 3 says the following:

> ECX[15:0] contains a count of the number of sequential pages to
> invalidate in addition to the original virtual address, starting from
> the virtual address specified in rAX. A count of 0 invalidates a
> single page. ECX[31]=0 indicates to increment the virtual address at
> the 4K boundary. ECX[31]=1 indicates to increment the virtual address
> at the 2M boundary. The maximum count supported is reported in
> CPUID function 8000_0008h, EDX[15:0].

ECX[31] being what we call INVLPGB_2M_CNT, signaling to increment the
VA by 2M.

> This instruction invalidates the TLB entry or entries, regardless of
> the page size (4 Kbytes, 2 Mbytes, 4 Mbytes, or 1 Gbyte). [...]

Combined with this, my interpretation of the current code is: if

    [24 lines not shown]
DeltaFile
+6-19sys/amd64/amd64/mp_machdep.c
+6-191 files

OPNSense/src 55bf54fcontrib/tzdata theory.html NEWS

contrib/tzdata: import tzdata 2025c, 2026a and 2026b

Changes: https://github.com/eggert/tz/blob/2025c/NEWS
Changes: https://github.com/eggert/tz/blob/2026a/NEWS
Changes: https://github.com/eggert/tz/blob/2026b/NEWS

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

(cherry picked from commit a86dc94b84d177da8f00d1c9420ef0860576e4c4)
(cherry picked from commit 68e2f4cc5e4ef17e64da2a25fb9918a0e1074b03)
(cherry picked from commit 6becc3dff922476d667c15f029e520da496d4295)
(cherry picked from commit 4830cb713ed8ae377f7143c4be204b5994c178c2)
(cherry picked from commit 9b95cab0a2927dfe07dbe6dc0056a80d5c730414)
(cherry picked from commit 30eb33424e74f467346319876e20a83ff71e00cd)
DeltaFile
+195-188contrib/tzdata/theory.html
+269-0contrib/tzdata/NEWS
+150-86contrib/tzdata/Makefile
+104-22contrib/tzdata/europe
+96-11contrib/tzdata/northamerica
+50-50contrib/tzdata/zonenow.tab
+864-35718 files not shown
+969-45924 files

OPNSense/src a4b0d5b. UPDATING, sys/conf newvers.sh

Add UPDATING entries and bump version

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

OPNSense/src 53a2985lib/libc/x86/sys pkru.3, sys/amd64/amd64 sys_machdep.c pmap.c

pkru: Fix handling of 1GB largepage mappings

pmap_pkru_update_range() did not handle the case where a PDPE has PG_PS
set.  More generally, the SET_PKRU and CLEAR_PKRU sysarch
implementations did not check whether the request covers a "boundary" vm
map entry.  Fix this, add the missing PG_PS test, and add some tests.

Approved by:    so
Security:       FreeBSD-SA-26:11.amd64
Security:       CVE-2026-6386
Reported by:    Nicholas Carlini <npc at anthropic.com>
Reviewed by:    kib, alc
Differential Revision:  https://reviews.freebsd.org/D56184
DeltaFile
+187-0tests/sys/posixshm/posixshm_test.c
+34-9sys/amd64/amd64/sys_machdep.c
+32-0sys/vm/vm_map.c
+17-3sys/amd64/amd64/pmap.c
+3-0lib/libc/x86/sys/pkru.3
+1-0sys/vm/vm_map.h
+274-126 files

OPNSense/src e1ed334sys/kern tty.c, tests/sys/kern tiocnotty.c Makefile

tty: Avoid leaving dangling pointers in tty_drop_ctty()

The TIOCNOTTY handler detaches the calling process from its controlling
terminal.  It clears the link from the session to the tty, but not the
pointers from the tty to the session and process group.  This means that
sess_release() doesn't call tty_rel_sess(), and that pgdelete() doesn't
call tty_rel_pgrp(), so the pointers are left dangling.

Fix this by clearing pointers in tty_drop_ctty().  Add a standalone
regression test.

Approved by:    so
Security:       FreeBSD-SA-26:10.tty
Security:       CVE-2026-5398
Reported by:    Nicholas Carlini <npc at anthropic.com>
Reviewed by:    kib, kevans
Fixes:          1b50b999f9b5 ("tty: implement TIOCNOTTY")
Differential Revision:  https://reviews.freebsd.org/D56046
DeltaFile
+82-0tests/sys/kern/tiocnotty.c
+4-0sys/kern/tty.c
+1-0tests/sys/kern/Makefile
+87-03 files

OPNSense/src 6ffe3a3sys/kern sys_timerfd.c

timerfd: Fix interval callout scheduling

When a timerfd interval callout misses its scheduled activation time, a
differential is calculated based on the actual activation time and the
scheduled activation time. This differential is divided by the timerfd's
interval time and the quotient is added to the timerfd's counter.

Before this change, the next callout was scheduled to activate at:
scheduled activation time + timerfd interval.

This change fixes the scheduling of the next callout to activate at:
actual activation time + timerfd interval - remainder.

Security:               FreeBSD-26:06.timerfd
Approved by:            so
Reviewed by:            markj
Differential Revision:  https://reviews.freebsd.org/D55790
MFC after:              2 weeks


    [2 lines not shown]
DeltaFile
+13-11sys/kern/sys_timerfd.c
+13-111 files

OPNSense/src 74e09b2sys/vm vm_fault.c

vm_fault: Reset m_needs_zeroing properly

- When allocating a page, we should only consider the PG_ZERO flag when
  handling the top-level page.
- Unconditionally reset the flag when restarting the fault handler.
  Previously, vm_fault_busy_sleep() would fail to reset it.

Approved by:    so
Security:       FreeBSD-EN-26:05.vm
PR:             294039
Reviewed by:    kib
Tested by:      Peter Much <pmc at citylink.dinoex.sub.org>
MFC after:      3 days
Fixes:          cff67bc43df1 ("vm_fault: only rely on PG_ZERO when the page was newly allocated")
Differential Revision:  https://reviews.freebsd.org/D56234

(cherry picked from commit 04132e01004316ddd0e0cde6ef15b100b7b1844d)
(cherry picked from commit 9b7c0f4f81f06424899094d4381dede79669b623)
DeltaFile
+3-4sys/vm/vm_fault.c
+3-41 files

OPNSense/core d7da708src/opnsense/mvc/app/views/OPNsense/IPsec connections.volt

ipsec: as a consistency idea
DeltaFile
+1-6src/opnsense/mvc/app/views/OPNsense/IPsec/connections.volt
+1-61 files

OPNSense/core 1d6784dsrc/opnsense/mvc/app/controllers/OPNsense/IPsec/forms dialogConnection.xml, src/opnsense/mvc/app/views/OPNsense/IPsec connections.volt vti.volt

ipsec: fancy up the connections dialog

It's a bit special but save is for the form in particular
and this way we can have native striping. The grids save
on their own and hopefully UI will be clearer now.
DeltaFile
+93-103src/opnsense/mvc/app/views/OPNsense/IPsec/connections.volt
+14-0src/opnsense/mvc/app/views/layout_partials/base_dialog.volt
+0-10src/opnsense/mvc/app/views/OPNsense/IPsec/vti.volt
+4-0src/opnsense/mvc/app/controllers/OPNsense/IPsec/forms/dialogConnection.xml
+111-1134 files

OPNSense/core 057bfcesrc/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt nat_rule.volt, src/opnsense/mvc/app/views/OPNsense/IPsec connections.volt

ui: apply message unification progress #10230
DeltaFile
+8-32src/opnsense/mvc/app/views/OPNsense/IPsec/connections.volt
+3-3src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+1-5src/opnsense/mvc/app/views/OPNsense/Unbound/acl.volt
+3-2src/opnsense/www/js/opnsense_bootgrid.js
+2-2src/opnsense/mvc/app/views/OPNsense/Firewall/nat_rule.volt
+4-0src/opnsense/www/js/opnsense_ui.js
+21-441 files not shown
+22-457 files

OPNSense/core 05813e1src/opnsense/mvc/app/library/OPNsense/Trust Store.php

Trust: parse key_type and digest, closes https://github.com/opnsense/core/issues/9033
DeltaFile
+13-0src/opnsense/mvc/app/library/OPNsense/Trust/Store.php
+13-01 files

OPNSense/core c092c09src/opnsense/mvc/app/views/OPNsense/IPsec connections.volt

ipsec: start larger layout effort
DeltaFile
+111-99src/opnsense/mvc/app/views/OPNsense/IPsec/connections.volt
+111-991 files

OPNSense/core 7d02b5fsrc/opnsense/mvc/app/views/OPNsense/IPsec connections.volt

ipsec: add working cancel button
DeltaFile
+8-1src/opnsense/mvc/app/views/OPNsense/IPsec/connections.volt
+8-11 files

OPNSense/core 72b685fsrc/opnsense/mvc/app/controllers/OPNsense/IPsec/forms dialogConnection.xml, src/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt

ipsec: fancy?
DeltaFile
+2-8src/opnsense/mvc/app/views/OPNsense/IPsec/connections.volt
+4-0src/opnsense/mvc/app/controllers/OPNsense/IPsec/forms/dialogConnection.xml
+1-1src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+7-93 files

OPNSense/core 0d3226esrc/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt nat_rule.volt, src/opnsense/mvc/app/views/OPNsense/IPsec connections.volt

ui: apply message unification progress #10230
DeltaFile
+9-32src/opnsense/mvc/app/views/OPNsense/IPsec/connections.volt
+3-3src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+1-5src/opnsense/mvc/app/views/OPNsense/Unbound/acl.volt
+3-2src/opnsense/www/js/opnsense_bootgrid.js
+2-2src/opnsense/mvc/app/views/OPNsense/Firewall/nat_rule.volt
+4-0src/opnsense/www/js/opnsense_ui.js
+22-441 files not shown
+23-457 files

OPNSense/core 82ee437src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv6.php KeaDhcpv4.php

Services: Kea DHCPv4/6: Add user-context object to config to emit description
DeltaFile
+27-1src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+21-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+48-12 files

OPNSense/core 2a51193src/opnsense/mvc/app/controllers/OPNsense/Kea/Api LeasesController.php, src/opnsense/mvc/app/views/OPNsense/Kea leases6.volt

Services: Kea DHCPv6: infer IPv6 lease type in delete script via lease lookup so IA_NA and IA_PD can be deleted (#10231)

This avoids propagating lease type handling through controller and UI
layers while fixing unreliable deletion of IA_PD leases.

The approach is pragmatic: in the extremely unlikely case that IA_NA and
IA_PD share the same base address, multiple leases may be deleted. This
tradeoff is considered acceptable given the low impact and recoverable
nature of DHCP leases.

* Also expose type and iaid in the leases page for completion

* prevent truncating duid or iaid in default view
DeltaFile
+29-5src/opnsense/scripts/kea/del_kea_leases.py
+4-2src/opnsense/mvc/app/views/OPNsense/Kea/leases6.volt
+1-1src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/LeasesController.php
+2-0src/opnsense/scripts/kea/get_kea_leases.py
+36-84 files

OPNSense/core af94cfdsrc/opnsense/mvc/app/views/OPNsense/Kea leases6.volt

prevent truncating duid or iaid in default view
DeltaFile
+2-2src/opnsense/mvc/app/views/OPNsense/Kea/leases6.volt
+2-21 files