FreeBSD The Power to Serve

FreeBSD 14.4-RELEASE Release Notes

Abstract

The release notes for FreeBSD 14.4-RELEASE contain a summary of the changes made to the FreeBSD base system on the 14-STABLE development line. This document lists applicable security advisories that were issued since the last release, as well as significant changes to the FreeBSD kernel and userland. Some brief remarks on upgrading are also presented.

Introduction

This document contains the release notes for FreeBSD 14.4-RELEASE. It describes recently added, changed, or deleted features of FreeBSD. It also provides some notes on upgrading from previous versions of FreeBSD.

The "release" distribution to which these release notes apply represents the latest point along the 14-STABLE development branch since 14-STABLE was created. Information regarding pre-built, binary "release" distributions along this branch can be found at https://www.FreeBSD.org/releases/.

The "release" distribution to which these release notes apply represents a point along the 14-STABLE development branch between 14.3-RELEASE and the future 14.5-RELEASE. Information regarding pre-built, binary "release" distributions along this branch can be found at https://www.FreeBSD.org/releases/.

This distribution of FreeBSD 14.4-RELEASE is a "release" distribution. It can be found at https://www.FreeBSD.org/releases/ or any of its mirrors. More information on obtaining this (or other) "release" distributions of FreeBSD can be found in the Obtaining FreeBSD appendix to the FreeBSD Handbook.

All users are encouraged to consult the release errata before installing FreeBSD. The errata document is updated with "late-breaking" information discovered late in the release cycle or after the release. Typically, it contains information on known bugs, security advisories, and corrections to documentation. An up-to-date copy of the errata for FreeBSD 14.4-RELEASE can be found on the FreeBSD Web site.

This document describes the most user-visible new or changed features in FreeBSD since 14.3-RELEASE. In general, changes described here are unique to the 14-STABLE branch unless specifically marked as MERGED features.

Typical release note items document recent security advisories issued after 14.3-RELEASE, new drivers or hardware support, new commands or options, major bug fixes, or contributed software upgrades. They may also list changes to major ports/packages or release engineering practices. Clearly the release notes cannot list every single change made to FreeBSD between releases; this document focuses primarily on security advisories, user-visible changes, and major architectural improvements.

Upgrading from Previous Releases of FreeBSD

Binary upgrades between RELEASE versions (and snapshots of the various security branches) are supported using the freebsd-update(8) utility. See the release-specific upgrade procedure, FreeBSD 14.4-RELEASE upgrade information, with more details in the FreeBSD handbook binary upgrade procedure. This will update unmodified userland utilities, as well as unmodified GENERIC kernels distributed as a part of an official FreeBSD release. The freebsd-update(8) utility requires that the host being upgraded have Internet connectivity.

Source-based upgrades (those based on recompiling the FreeBSD base system from source code) from previous versions are supported, according to the instructions in /usr/src/UPDATING.

Upgrading FreeBSD should only be attempted after backing up all data and configuration files.

Security and Errata

This section lists the various Security Advisories and Errata Notices since 14.3-RELEASE.

Security Advisories

Advisory Date Topic

FreeBSD-SA-25:06.xz

2 July 2025

Use-after-free in multi-threaded xz decoder

FreeBSD-SA-25:07.libarchive

8 August 2025

Integer overflow in libarchive leading to double free

FreeBSD-SA-25:08.openssl

30 September 2025

Multiple vulnerabilities in OpenSSL

FreeBSD-SA-25:09.netinet

22 October 2025

SO_REUSEPORT_LB breaks connect(2) for UDP sockets

FreeBSD-SA-25:10.unbound

26 November 2025

Cache poison in local-unbound service

FreeBSD-SA-25:11.ipfw

16 December 2025

ipfw denial of service

FreeBSD-SA-25:12.rtsold

16 December 2025

Remote code execution via ND6 Router Advertisements

FreeBSD-SA-26:01.openssl

27 January 2026

Multiple vulnerabilities in OpenSSL

FreeBSD-SA-26:02.jail

27 January 2026

Jail escape by a privileged user via nullfs

FreeBSD-SA-26:04.jail

24 February 2026

Jail chroot escape via fd exchange with a different jail

FreeBSD-SA-26:05.route

24 February 2026

Local DoS and possible privilege escalation via routing sockets

Errata Notices

Errata Date Topic

FreeBSD-EN-25:10.zfs

2 July 2025

Corruption in ZFS replication streams from encrypted datasets

FreeBSD-EN-25:12.efi

8 August 2025

bsdinstall(8) not copying the correct loader on systems with

FreeBSD-EN-25:13.wlan_tkip

8 August 2025

net80211 TKIP crypto support fails for some drivers

FreeBSD-EN-25:14.route

8 August 2025

route(8) monitor buffers too much when redirected to a file

FreeBSD-EN-25:15.arm64

16 September 2025

arm64 syscall(2) allows unprivileged user to panic kernel

FreeBSD-EN-25:16.vfs

16 September 2025

copy_file_range(2) fails to set output parameters

FreeBSD-EN-25:17.bnxt

16 September 2025

bnxt(4) fails to set media type in some cases

FreeBSD-EN-25:18.freebsd-update

30 September 2025

freebsd-update(8) installs libraries in incorrect order

FreeBSD-EN-26:02.arm64

27 January 2026

arm64 SVE signal context misalignment

FreeBSD-EN-26:03.vm

27 January 2026

The page fault handler fails to zero memory

Userland

This section covers changes and additions to userland applications, contributed software, and system utilities.

Userland Application Changes

The diff(1) utility now reports I/O errors encountered during the Stone algorithm’s file comparison phase, providing error messages where previously only the exit status indicated failure. 3c10ed2ba3aa. (Sponsored by Klara, Inc.)

The diff(1) utility no longer incorrectly compares a file or directory to itself, fixing a bug where diff could produce misleading output. In addition, several internal correctness and robustness improvements were made (see related commits), including fixes for resource leaks in the pagination code, improved error handling around file descriptor operations, and prevention of potential integer overflows when using very large context windows. Additional tests were added to cover these cases. b4139147bbb7, 6761e555376e, 2434f3b279a9, 238bf5ebf684. (Sponsored by Klara, Inc.)

The mdo(1) privilege-escalation utility adds new options to control user and group IDs in launched processes, including -k to keep current users, -g and -G to set primary and supplementary groups, -s to amend supplementary groups, and --euid/--ruid/--svuid/--egid/--rgid/--svgid to override specific IDs. This provides finer-grained control over process credentials while maintaining compatibility with existing behavior. 58f55afb301b. (Sponsored by The FreeBSD Foundation | Google LLC (GSoC 2025))

The sockstat(1) utility now displays UDP-Lite endpoints by default, providing visibility into these sockets alongside other network connections. 23cda744e4da.

The nuageinit(7) tool now supports the chpasswd command, allowing password changes via a list or multiline string, including deprecated syntax for compatibility with some providers. 6c912470030b. (Sponsored by OVHCloud)

The pkg(7) utility now parses command-line arguments in the same way as pkg(8), requiring options to be placed in the same positions. Note: This changes the behavior of some previously accepted command sequences, such as pkg -f bootstrap no longer working; users must use pkg bootstrap -f instead. 62947e508161. (Sponsored by The FreeBSD Foundation | The FreeBSD Foundation)

The bsdinstall(8) installer no longer supports ZFS installations using MBR disk layouts. This removes a previously broken option that could cause installation failures. 220584471931. (Sponsored by The FreeBSD Foundation)

The freebsd-update(8) utility now installs shared libraries in a specific order (libsys, libc, libthr, then others) to prevent failures during upgrades from 14.x to 15.x. e26928669f39. (Sponsored by https://www.patreon.com/cperciva)

The filesystem creation utility, newfs(8), gained a -u flag to disable the default soft updates and soft updates journaling for UFS2 filesystems. 929ef0d36c6c. (Sponsored by Klara, Inc. | NetApp, Inc.)

The ngctl(8) utility gained a -j flag to attach and run inside a jail, allowing manipulation of netgraph nodes from within a jail(8). This enables administrators to manage netgraph configurations in jails where ngctl may not be directly available. 04911babef1b.

A new utility for controlling sound devices, sndctl(8), has appeared with an interface similar to mixer(8). 00988d12bc37. (Sponsored by The FreeBSD Foundation)

The jail(8) subsystem has gained meta and env parameters, allowing arbitrary string metadata and environment information to be associated with each jail. The parameters can be set during jail creation or modified later using jail -cm, and can be viewed with jls(8). The security.jail.meta_maxbufsize sysctl(8) controls the maximum size of these parameters. 527027da391d. (Sponsored by SkunkWerks GmbH)

The Bluetooth startup script rc.d/bluetooth now retries the hccontrol reset up to three times for improved reliability and fixes a redirection bug that could create stray files. 53d1c328e912.

The swapon(8) utility now supports encrypted swap files using md(4) devices with an .eli suffix in fstab(5). This allows encrypted swap to be configured in fstab as previously documented. 9d80d681ee9d.

Contributed Software

The bc(1) and dc(1) calculators have been updated to version 7.1.0. ab36487a79cd.

The bmake(1) build utility has been updated to version 20251111. c95f96dea30a.

The Kerberos kadmin(1) utility gains a new -f option for dumping Heimdal KDC databases in MIT-compatible format, enabling migration to MIT KDC without recreating the database from scratch. a93e1b731ae4.

The less(1) pager has been updated to version 685. 054ae5e7b465.

The mandoc(1) manual page compiler has been updated to version 2025-09-26, improving case sorting, visual compatability with groff(1), fixes to a PDF/PS footer regression, and improvements to the linter. 7fa4ccb8e4e7, 8039d22f6afd.

The netcat utility, nc(1), now accepts service names like http' in addition to port numbers for the `-p option and as command-line arguments. 0fe58344e829.

The xz(1) data compression suite has been updated to version 5.8.2. 07700b0107dc.

The multi-format archive and compression library, libarchive(3), has been updated to version 3.8.5. This includes a bug fix for tar(1) to resolve a regression in zero-length pattern handling. 39fd1181e5b2.

libyaml has been updated to version 0.2.5. e52f11f4bbc8.

lyaml, a Lua binding for libyaml, is now available in the base system. c508393e49fc.

libucl(3) has been updated to version 0.9.2. 0a8d8b0c878f. (Sponsored by The FreeBSD Foundation)

The expat XML parser has been updated to version 2.7.3. a85cfcb61efd.

The OpenZFS filesystem has been updated to version 2.2.9. This release includes improvements to ARC shrinking, fixes for zpool add safety checks, zvol blk-mq synchronization, and BRT range conversion math. 709465f2c4f1.

The blacklistd(8) DoS prevention utility has been updated and renamed to blocklistd(8). 4690a369ff6d.

The mapping tree utility, mtree(8), has been updated improving compatibility and fixing bugs. f9d671f726ac.

The unbound(8) DNS resolver has been updated to version 1.24.1, mitigating YXDOMAIN and nodata non-referral answer poisoning, preventing a malicious actor from exploiting a possible cache poison attack. This addresses CVE-2025-11411. eeb41dca070f, cd40a23fb249.

The PCI vendors database has been updated to version 2026-02-10. 7805899ed791.

The USB vendor database has been updated to 2025-12-13. 02138275effb.

The Time Zone database has been updated to version 2025c. 68e2f4cc5e4e.

The SQLite database has been updated to version 3.50.4. ef55f6b86626.

The gallant console font now includes over 4300 glyphs, adding support for Greek, Cyrillic, IPA extensions, extended Latin, Zapf Dingbats, arrows, mathematical symbols, box drawing, currency symbols, and Powerline glyphs. This expands the character set available in the console for multilingual text and symbols. 8d2d6647d65a.

The spleen console font has been updated to version 2.2.0, adding missing characters (em-dash, en-dash, hyphen, angle brackets, white square, dagger, double dagger) and improving character alignment, particularly for high-dpi displays. c44ec96b471e.

OpenSSH has been updated to version 10.0p2. The update removes support for the weak DSA signature algorithm and changes the default key agreement to the post-quantum hybrid algorithm mlkem768x25519-sha256. The sshd(8) authentication phase now runs in a separate sshd-auth binary. 7ca599aa6139. (Sponsored by The FreeBSD Foundation)

OpenSSL has been updated to version 3.0.16. aed5a47b3a8a.

Deprecated Applications

The RIP routing protocol is deprecated and will be removed in a future release. The man pages for routed(8), rtquery(8), route6d(8), and rip6query(8) are updated to note the deprecation. Users needing RIP should use alternatives like 'bird' or 'quagga' from the ports collection. d350c18f98fd.

Runtime Libraries and API

The Internet network number manipulation library functions, inet_net_ntop(3) and inet_net_pton(3), are updated to correctly handle IPv6 addresses, fixing previous incorrect behavior. b4871be3490d. (Sponsored by https://www.patreon.com/bsdivy)

The PAM library now searches for modules in ${LOCALBASE}/lib/security, in addition to ${LOCALBASE}/lib. This allows PAM modules installed by ports that follow the Linux directory convention to be found and used. 65808459e21b.

Cloud Support

This section covers changes in support for cloud environments.

The nuageinit(7) virtual machine initializer received multiple improvements: execution is now logged; uses a fully compliant YAML parser; improves cloud-init compatibility (adds 'runcmd', 'packages', 'fqdn', 'hostname', 'sudo', 'write_files', 'nameservers', 'tzsetup', 'doas'); improves network support with many fixes, adds support for 'wakeonlan', 'set-name', and 'match.driver'; uses resolvconf(8); and only creates the default user when needed. Support has been added for cloud-init, configuration over the network, and package management. 548d4b2af90b, 5444803b745e, 3a680e954469, cbd62452bff6, d056f72c358b, 823f1076c7cd, bb3bc92f4df6. (Sponsored by OVHCloud)

Kernel

This section covers changes to kernel configurations, system tuning, and system control parameters that are not otherwise categorized.

General Kernel Changes

The jail(8) system will restrict unprivileged users in a parent jail from scheduling, debugging, or signaling processes in subordinate jails by default in FreeBSD 15.0 and later. New privileges PRIV_SCHED_DIFFJAIL, PRIV_DEBUG_DIFFJAIL, and PRIV_SIGNAL_DIFFJAIL are required for such cross-jail operations. Note: A new jail parameter allow.nounprivileged_parent_tampering has been introduced to enable early adoption of the new behavior, but this will become enabled by default in FreeBSD 15.x, affecting development setups that rely on cross-jail process management. 5c6949e12ee6.

A race condition on POWER9 was fixed in the context switch code that could cause the system to hang after starting all APs. 666599639cf6.

Devices and Drivers

This section covers changes and additions to devices and device drivers since 14.3-RELEASE.

Device Drivers

The epair(4) driver now supports stable MAC addresses via the net.link.epair.ether_gen_addr sysctl(8). This helps maintain consistent DHCP and dynamic DNS assignments when epair interfaces are recreated, such as after jail restarts. The default behavior remains random MAC generation, but setting the sysctl to 1 enables stable addresses. 02f70f6633fd.

The iwlwifi(4) driver now includes ACPI support, enabling regulatory features for 802.11ax, 802.11be, and Per Platform Antenna Gain (PPAG) settings. c4496f82680c. (Sponsored by The FreeBSD Foundation)

The ix(4) and ixv(4) drivers add support for the Intel Ethernet E610 family of devices, including new PCI IDs for backplane, SFP, 10 GbE, 2.5 GbE, and SGMII variants. This enables link speeds of 2.5G, 5G, and 10G on supported hardware. a728b96686e6. (Sponsored by Intel Corporation)

The mfi(4) and mrsas(4) drivers now supports the Fujitsu RAID Controller SAS 6Gbit/s 1GB (D3116), which is used in Fujitsu PRIMERGY servers like the RX300 S7. 653099bcc191, 3690911c355a.

The nvme(4) driver now supports BAR5 for Table BIR and PBA BIR, enabling FreeBSD on Google Compute Engine C4 machines. dca645cd3112. (Sponsored by Google)

The qat(4) driver now supports the 402xx device (IDs 0x4944/0x4945) under the existing qat_4xxx driver. af51f41346ad. (Sponsored by Intel Corporation)

The smartpqi(4) driver is updated to version 4660.0.2002, providing updated support for Microchip smartpqi controllers. ec98cb56861f. (Sponsored by Microchip Technology Inc.)

Deprecated and Removed Drivers

The in-kernel MIDI sequencer is deprecated. This change adds a deprecation notice to the kernel and may affect applications that rely on this legacy interface. ab9c9443eec5. (Sponsored by The FreeBSD Foundation)

Storage

This section covers changes and additions to file systems and other storage subsystems, both local and networked.

General Storage

The 9P filesystem (p9fs(4)) has been added for use with bhyve(8) virtio-9p devices. It allows guests to access host files via share mappings, and can be used as a root or non-root filesystem. The driver is loaded via virtio_p9fs_load=YES in loader.conf. 615fba7c6b39.

The tarfs(4) filesystem now correctly handles large files exceeding 4 GB and 8 GB limits. It fixes decompression errors when seeking beyond 4 GB in zstd-compressed tarballs and properly processes extended header records for files larger than 8 GB. 35c612fbabd8. (Sponsored by Klara, Inc.)

The unionfs(4) and nullfs(4) filesystems now perform stricter checks for jail root vnodes during dotdot lookups, preventing a potential chroot escape vulnerability. 3feafab4a34c.

Boot Loader Changes

This section covers the boot loader, boot menu, and other boot-related changes.

Boot Loader Changes

The EFI boot loader, loader.efi(8), now uses firmware-provided Blt functions only when using the Graphics Output Protocol (GOP), avoiding issues on older UGA-based systems like MacBooks. 6741fb1bd4f4.

The bsdinstall(8) installer now copies loader.efi to all ESPs created for multi-volume ZFS datasets, providing boot redundancy if the primary disk fails. d8e73f45fc5f. (Sponsored by Netflix)

Wireless firmware packages are now included on bootonly installation media, enabling users to fetch installation files over a wireless connection. 2ee0f3c954e7. (Sponsored by The FreeBSD Foundation)

Networking

This section describes changes that affect networking in FreeBSD.

General Network

Compatibility code for IPFW versions prior to FreeBSD 8 has been removed to simplify the codebase. Users or third-party modules that still rely on the old compatibility interfaces must migrate before upgrading. 57865e505aef. (Sponsored by The FreeBSD Foundation)

A sbin/ipfw15 binary has been added with updated KBI for compatibility with 15.0+ kernels. The original ipfw(8) binary detects the new KBI and automatically runs ipfw15, ensuring firewall rules can be loaded during upgrades. The utility is also installed as /sbin/dnctl15 for dummynet compatibility. 969e2b406835.

Wireless Networking

The net80211 subsystem has been updated to properly support VHT160 and VHT80P80 channel widths with modern access points, aligning with changes from 802.11ac-2013 to 802.11-2020. This enables VHT160 and VHT80P80 in the LinuxKPI 802.11 driver compatibility code, affecting wireless performance and compatibility. ccdd6285df5d. (Sponsored by The FreeBSD Foundation)

Hardware Support

This section covers general hardware support for physical machines, hypervisors, and virtualization environments, as well as hardware changes and updates that do not otherwise fit in other sections of this document.

The Raspberry Pi Zero 2W device tree blob is now included on the release SD card images, enabling support for this hardware model. fce5d401a803.

Please see the list of hardware supported by 14.4-RELEASE, as well as the platforms page for the complete list of supported CPU architectures.

Virtualization Support

The bhyve(8) hypervisor now reports SVM as disabled in the VM control register, preventing hangs on AMD systems with recent Windows guests. 321a15380668.

Documentation

This section covers changes to manual (man(1)) pages and other documentation shipped with the base system.

/usr/share/examples has reappeared on systems installed with base system packages. d149be3a0cbe.

Manual Pages

The shell builtin(1) command manual has been streamlined and gained a new section on built-in keyboard bindings. b98efcdb6210.

The newaliases(1) manual has been updated to clarify that it is for sendmail(8). e3df9a78da6b.

The ps(1) manual now documents that -A and -a show all processes regardless of other selection options, and clarifies the behavior of -J. f18a49a747f7. (Sponsored by The FreeBSD Foundation)

The write(2) manual now includes a new section describing the atomicity guarantees of write operations. c19f161f5f65.

Manuals for several DTrace providers have been added, including dtrace_fbt(4) (function boundary tracing), dtrace_vfs(4) (VFS activity), dtrace_pid(4) (user-level process tracing),dtrace_priv(4) (privilege checks), and dtrace_callout_execute(4) (callout handler execution). 0c91fa982437, 04bb91e9c5f7, ff6b04c37e78, f69bf8f994e5, 7d43404485bf.

New or improved manuals have appeared for most Ethernet switch controllers including mtkswitch(4), ip17x(4), ar40xx(4), arswitch(4), e6000sw(4), and e6060sw(4). f31ac06711e6, 17e9eb1e0eb7, 1343a5b616ec, d0e29f92f7a2, 5e0e046d95a9, ded154a1df97.

linuxkpi(4) and linuxkpi_wlan(4) manuals have been added, providing brief documentation on the LinuxKPI and its 802.11 compatibility features. 669062384f55. (Sponsored by The FreeBSD Foundation)

The cdboot(8) manual has been added, documenting the previously undocumented cdboot utility. d659366cc62a.

The crash(8) manual has been updated to reflect current system behavior, removing references to obsolete panic messages and updating guidance on recovery media. 4f2140aa9677.

The dumpon(8) manual now shows settings to adjust the behavior of crash(8) dumps. 7c8717183536.

The ipfw(8) manual now documents how to delete a NAT configuration instance. 186ac4724746.

The mtree(8) manual now clarifies that the type keyword remains mandatory and is not removed by -R all. This ensures consistent behavior and prevents potential misinterpretation of the command. f957857c4835.

The pf.conf(5) manual now documents that network address ranges used as items in list macros must be quoted with additional single quotes. 0077daf9cdc4.

The pw(8) manual now clarifies the acceptable formats for member lists with the -M, -m, and -d flags of the groupadd and groupmod options. 78343cd2a0f1.

The vt(4) manual now includes an example on increasing scrollback size and a section explaining console fonts, covering conversion, support, and usage. ce92b9d8332a, c330c43e58d7.


Last modified on: March 9, 2026 by Alexander Ziaee