This selection is intended to include all important
and all user-visible changes.
For a complete record of all changes, please see the "source-changes"
mailing list, called "OpenBSD CVS"
in the archives,
or use CVS.
For changes in other releases, click below:
2.0,
2.1,
2.2,
2.3,
2.4,
2.5,
2.6,
2.7,
2.8,
2.9,
3.0,
3.1,
3.2,
3.3,
3.4,
3.5,
3.6,
3.7,
3.8,
3.9,
4.0,
4.1,
4.2,
4.3,
4.4,
4.5,
4.6,
4.7,
4.8,
4.9,
5.0,
5.1,
5.2,
5.3,
5.4,
5.5,
5.6,
5.7,
5.8,
5.9,
6.0,
6.1,
6.2,
6.3,
6.4,
6.5,
6.6,
6.7,
6.8,
6.9,
7.0,
7.1,
7.2,
7.3,
7.4,
7.5,
current.
Changes made between OpenBSD 7.5 and 7.6
- Fixed sleeping race during malloc in sysctl(2) hw.disknames.
- Removed sysupgrade(8) -r toggle. Sysupgrade's primary aim is to upgrade from one release to the next, with the -s option available to install snapshots.
- Increased the default buffer size for AF_UNIX from 8192 to 32768, avoiding a fatal error in sshd(8) that can be triggered when the network stack is pushed hard enough to consume most of the allowed memory.
- Added a temporary method to force S0 over S3 via machdep.lidaction=-1. We are not ready to choose S0-over-S3 based on the S0ix bit in FADT, but this will allow testing.
- Removed vmm(4) EPT mprotect ioctl.
- Allowed longer tx chains in vio(4) so we can defragment less often when TCP segmentation offload is supported.
- Moved rpki-client(8) to 9.3.
- Moved to openssh-9.9.
- Extended the zic(8) input format to add support for %z, which expands to a UTC offset in as-short-as-possible ISO 8601 format, intended to better support zones that do not have an established abbreviation already.
- Changed tmux(1) extended-keys behavior to allow applications to enter mode 2 but not turn extended keys off entirely.
- Added a tmux(1) prefix-timeout option to allow setting a period after which to ignore the prefix key if no others are pressed.
- Fixed kernel crashing due to invalid printables in ELF binaries.
- Kept radiusd(8) number of requests for a DAE server below 64 to avoid congestion.
- Added radiusctl(8) ipcp delete command to delete the specified session without requesting disconnection.
- Added a "Match invalid-user" predicate to sshd_config(5) Match options, allowing writing Match conditions that trigger for invalid username.
- Added a "refuseconnection" penalty class to sshd_config(5) PerSourcePenalties, allowing penalization of connection sources that have had connections dropped by the RefuseConnection option.
- Added a "RefuseConnection" option to sshd_config(5) to terminate the connection at the first authentication request.
- Included pathname in some of the ssh-keygen(1) passphrase prompts to better inform the user when ssh-keygen is invoked by other tools.
- Added NVMe sensors based on information in the SMART/health log page, showing overall device health and temperature.
- Made msdosfs transform a '/' char into '?' for 8.3 filenames as for Windows long names.
- Ensured file names passed back by readdir name validation do not include a '/' character to avoid unexpected path traversal on untrusted file systems.
- Relaxed absolute path requirement back to what it was prior to OpenSSH 9.8, which incorrectly required that sshd(8) start with an absolute path in inetd mode.
- Ignored tmux(1) mouse move keys to prevent accidental prefix cancelation.
- Implemented AMD SEC support in vmd(8). To enable SEV for a guest, use the parameter "sev" in the guest's vm section in vm.conf.5.
- In NFS, set the pointer to NULL after calling m_freem() on nmi_mrep or nmi_mreq to avoid a double free of the mbuf.
- Prevented potential crash when fuse(4) uses the ufs inode.
- Prevented use of an uninitialized variable in NFS error handling.
- Fixed alert callback in the QUIC layer.
- Pulled post-quantum ML-KEM/x25519 key exchange out from compile-time flag now that an IANA codepoint has been assigned for the algorithm.
- Re-enabled AES-NI in libcrypto to help amd6 and i386 machines that previously benefited from it before a change in OPENSSL_cpu_caps().
- Allowed dt(4) tracing interrupts by deferring the wakeup9 to a different context.
- Made ssh(1) parse user@host correctly for usernames containing '@' characters.
- Made ddb(4) print mbuf chain and packet list by implementing /c and /p modifiers in ddb show mbuf.
- Updated libexpat to 2.6.3, including fixes for CVE-2024-45490, CVE-2024-45491, and CVE-2024-45492.
- Set highest cpuid feature leaf based on host spu in vmm(4), fixing Linux guests on older Intel hardware.
- Removed rpki-client(8) '-r' command line option.
- Updated unbound to 1.21.0.
- Added a workaround for vnode reuse bug resulting in a panic: vop_generic_badop.
- Prevented VPID leakage in vmx(4) by allocating at vcpu init.
- Allowed the ssh_config(5) "include" directive to expand the same set of %-tokens that "Match Exec" and environment variables.
- Introduced revamped Greek sshd_config(6).
- Added experimental support for hybrid post-quantum key exchange ML-KEM768 with ECDH/X25519 (disabled by default).
- For AMD SEV, provided ioctl(2) in ccp(4) to shutdown guest.
- Pledged "vmm" for ccp(4) ioctl(2).
- Introduced rport(4) for p2p I3 connectivity between route domains.
- Made netstat(1) display statistics about expensive mbuf operations, counting operations used to allocate mbufs or copy memory when memory layout is not optimal to find possible optimizations.
- Made rpki-client(8) periodically reinitialize RRDP sessions to snapshot at random intervals, helping with garbage collection.
- Prevented dropped packets from vio_encap() when using bounce buffers by defragmenting mbuf and trying again.
- Enabled per-cpu page cache on alpha.
- Fixed the sed(1) case where the pattern space is empty but does not start with a NUL character, which might occur after using the D command.
- Fixed underlying pkey of RSA-PSS.
- Prevented frequent disconnect/reconnect cycles with various PixArt/Logitech USB mice.
- Enabled AMD SEV support in vmm(4).
- Displayed hyperlinks in tmux(1) copy mode and added copy_cursor_hyperlink format to get the hyperlink under the cursor.
- Added search_count and search_count_partial formats in tmux(1) copy mode.
- Removed uvm_km_alloc(9) and uvm_km_allock1(9).
- Replaced the last pieces of the original OpenBSD, dropping the Greek sshd_config(6) in favor of one about galley parts to match the Ship of Theseus theme.
- Enabled per-cpu page cache on mips64.
- Switched alpha to MI mplock code.
- Deleted support for the older "zlib" negotiable compression support which had been left in place in OpenSSH to allow negotiation with non-OpenSSH daemons which lack a replacement delayed-compression option like "[email protected]" where compression begins after authentication.
- Unlocked ipip_sysctl().
- Introduced sysctl_securelevel() to modify 'securelevel' mp-safe. Made sysctl_securelevel_int() mp-safe. Unlocked KERN_ALLOWDT.
- Fixed merge of bounce buffer segments in amd64 bus dma.
- Made gprof(1) output more compact.
- Unlocked ipip_sysctl().
- Supported building a single packet out of multiple rx descriptors in rge(4).
- Improved bus_dmamap_syncs for rx ring descriptors on rge(4) hardware.
- Revamped tmux(1) extended keys support to more closely match xterm1 and support mode 2 as well as mode 1.
- Added mirrored versions of the main-horizontal and main-vertical layouts when the tmux(1) main pane is bottom or right instead of top or left.
- Unlocked KERN_MAXFILES.
- Fixed hanging network transmits when bounce buffers are enforced for vio(4).
- Unlocked KERN_MAXPROC and KERN_MAXTHREAD from kern_vars.
- Unlocked etherip_sysctl().
- Unlocked igmp_sysctl(), pfsync_sysctl() and rip_sysctl().
- Unlocked sysctl_audio().
- Prevented exposure of ssh1 key material in coredumps, etc. by placing shielded keys into memory allocated using mmap(3) with MAP_CONCEAL set.
- Fixed cron(8) CVE-2024-43688: buffer underflow for very large step values.
- Enabled MXT_T7_POWER_MODE_DEEP_SLEEP for iatp(4).
- Allowed REP to work with Unicode characters in tmux(1).
- Retired inet_aton(3).
- Ensured softraid(4) sensors are unregistered when the volumes are removed.
- Corrected pms(4) child activate functions calling.
- Corrected audio drivers to inform children about suspend/resume related events.
- Added Meteor Lake support to pchgpio(4).
- Fixed an issue with hardware that sends an interrupt in response to a reset request when a level-triggered interrupt is used.
- Made task pool private for each instance of apldcp(4) attached to DCP to avoid panic due to initializating the pool again.
- Prevented livelocks on amd64 by avoiding caching pages belonging to memory ranges with a 'use' count to keep low pages available and avoid their exhaustion.
- Plugged a memory leak in qwx(4).
- When resuming, run usb_attach_roothub() in DVACT_WAKEUP rather than DVACT_RESUME.
- Began printing "S0ix" instead of "S0" on the acpi: sleep states line when FADT indicates FADT_POWER_S0_IDLE_CAPABLE, assuming that for these machines the vendors agree S0 suspend is as good or better than S3.
- Skipped a FADT check on OpenBSD to prevent the GPU (and display) from remaining on in suspend-to-idle on some machines.
- Used the ACPI sleep state to determine whether to use the suspend or hibernate code paths in amdgpu(4), fixing (un)hibernate after changes to S0/S3.
- Allowed PPP interface to run in an rdomain and get a default route installed in the same routing domain.
- Fixed a qwx(4) interrupt storm during resume.
- Fixed swapping of source and destination addresses in some sshd(8) log messages.
- Added missing child activate handling in iatp(4).
- Eliminated some resume-hangs on dwiic(4) chips.
- Corrected dwiic(4) to inform children of suspend/resume events and prevent sub-drivers racing against dwiic hardware re-initialization.
- Skipped Controller Save State (CSS) and Controller Restore State (CRS) on AMD 17h/1xh xHCI to avoid problem with resume after introduction of CRS to xhci(4).
- Added pledge and unveil to rpcinfo(8).
- Unlocked divert_sysctl() and divert6_sysctl().
- Atomically modify `hthreads' and move proc_free() out of KERNEL_LOCK().
- Made xhci(4) restore the saved state upon resume, needed for newer Intel xHCI controllers.
- Added BIOCSETFNR to bpf(4), like BIOCSETF without resetting the buffer or stats.
- Introduced "rde rib Loc-RIB include filtered", a feature that includes filtered prefixes in the Loc-RIB, visible using bgpctl.8 show rib filtered. Added filtered support to bgplgd(8).
- Implemented bounce buffering for AMD SEV in amd64 bus dma.
- Pushed kernel lock down to net_sysctl() and mpls_sysctl().
- Introduced qwz(4), a port of the Linux ath12k driver.
- Made sysctl_int() and sysctl_int_lower() mp-safe and unlocked KERN_HOSTID.
- Modified miniroot install instructions to reflect Apple machines can now also use USB type-A ports for installation.
- Disabled interrupts more aggressively in DVACT_QUIESCE and DVACT_SUSPEND in azalia(4) to address false interrupts seen during S0 resume.
- Made acpi(4) use ACPI_WAK upon resume, potentially improving S3 resume on some rare machines.
- Fixed a bug in mandoc(1) .Ql handling which could corrupt output.
- Sync full virtqueue on virtio(4) device reset.
- Added -CRLfile option to openssl(1) cms, allowing verification of certs in a CMS object against additional CRLs.
- Run network protocol timer without kernel lock. TCP timers also run without kernel lock now. The whole TCP stack holds exclusive net lock, so additional kernel lock is useless.
- Implemented smtpd(8) report response for proc-filters as with built-in filters.
- Added a 'min-version' bgpd(8) RTR config option and defaulted to RTR version 1, ensuring a session cannot be suddenly downgraded. Made bgpctl(8) print min-version of an RTR session.
- Attempted to leave a gap on the tx ring for rge(4)/re(4) to keep entries on the ring from being overwritten, preventing confusion of the chip and the tx completion code.
- Removed mpi(4) from the amd64 floppy.
- Updated x11perf to 1.7.0.
- Fixed an xterm(1) crash when printing decreased intensity unicode right quote using bit-mapped fonts.
- Made exit1() wait for sysctl(2) 'allprocess' loops to prevent possible kernel crash due to concurrent process exit1().
- Provided a per-architecture crypto_arch.h, to be used in a smiliar manner to bn_arch.h and allow for architecture-specific #defines and static inline functions.
- Modified igc(4) to allow use of jumbo frames while supporting strict alignment architectures.
- Fixed TX descriptors DMA syncs in rge(4).
- Fixed xhci(4) issues after resume by giving some AMD Ryzen hHCI controllers the extra time they need to transition from D3 into D0.
- Improved config validation with relayd(8) -n to prevent incompatibility with pf(4).
- Added 2024 root zone trust anchor to unwind(8).
- Enabled GuC authentication of the HEVC/H.265 micro Controller (required for Low Power Encoding with the Intel Media Driver for VAAPI.
- Unlocked KERN_MSGBUFSIZE and KERN_CONSBUFSIZE.
- Made intelmpc(4) print information about the residency counters advertised in the LPIT table.
- Moved to 7.6-beta.
- Unlocked udpctl_vars.
- Added code to handle EC events while suspended and registered the acpibtn(4) notify handlers as wakeup AML notify handlers, going back to sleep immediately if woken up for any other EC event.
- Ensured some Intel xhci(4) controllers fully power down by issuing a "save state" command on suspend.
- Unlocked sysctl(2) net.inet.ip.directed-broadcast.
- Made the eMMC come up reliably on the RK3588 eMMC controller by resetting the status before executing a new command.
- Unlocked KERN_CLOCKRATE.
- Stopped using KERNEL_LOCK to protect the per process kqueue(2) list.
- Restricted the bpf(4) maximum wait time to 5 minutes.
- Unlocked KERN_BOOTTIME.
- Fixed reporting of critical battery state.
- Added battery sensors to qcpas(4).
- Fixed bridging IPv6 fragments with pf4 reassembly in veb(4) and bridge(4).
- Unlocked most of kern_vars' variables. Unlocked KERN_SOMAXCONN and KERN_SOMINCONN.
- Moved to take 'sysctl_lock' before kernel lock.
- Updated libXtst to 1.2.5.
- Updated freetype to 2.13.2.
- Updated libX11 to 1.8.10.
- Added battery status support for the X1E80100.
- Introduced intelpmc(4), a driver for the power management controller found on various Intel SoCs.
- Updated awk(1) to the July 28, 2024 version.
- Fixed legacy protocol parsing in libtls.
- Pushed the kernel lock down to sysctl(2).
- Fixed an issue with power-off of xhci(4) controllers.
- Removed kernel lock from socket splice idle timeout.
- Bumped libsndio pkg-config version to 1.10.0.
- Fixed possible sndiod(8) crashes caused by a global table overread triggered by the client.
- Added a random amount of time (up to 4 seconds) to the grace login time in sshd(8).
- Added ufshci(4) at fdt support, allowing boot of the Samsung Galaxy Book4 Edge in DT mode.
- Made the Samsung Galaxy Book4 Edge (x1e80100) boot in ACPI mode.
- Set the target ACPI to S5 when powering down i386 and amd64 machines, rather than attempting to put devices into the D3 power state.
- Fixed dowait6() handling for multithreaded processes where the main thread has exited.
- Added check in pwd_mkdb(8) preventing creation of a passwd(5) entry too large for getpwent(3).
- Added env(1) "-u name" to remove a variable from the environment.
- Allowed running UDP input on multiple CPU in parallel.
- Fixed ssh(1) proxy multiplexing (-O proxy) bug that could crash the connection.
- Made qcpas(4) explicitly request battery status updates and estimate the remaining battery (charge) time by using the reported rate.
- Updated xterm to 393.
- Used a different mutex to protect the kqueue(2) klist in logsoftc to keep log_mtx a leaf lock and let printf(9) be used in most contexts again.
- Fixed a bug where sasyncd(8) couldn't restore SAs.
- Fixed uaudio(4) failure to attach when interface number and interface index do not match and the wrong interface is claimed.
- Fixed delayed level setting on audio(4) devices.
- Populated arm64 hwcap and hwcap2 based on recognized feature bits and sanitized values of the ID register values.
- Exported basic HWCAP bits to let applications detect Altivec and VSX on powerpc64.
- Exported basic HWCAP bits to let applications detect Altivec on powerpc.
- Added optimized character rendering case for 6 pixel wide fonts in rasops32_putchar().
- Unlocked udp(4) somove().
- Unlocked sysctl(2) net.inet.ip.redirect and net.inet6.ip6.redirect.
- Relaxed socket lock assertion in UDP input and send.
- Unveiled2 /etc/gettytab.db in getty(8).
- Enabled VA-API gallium frontend.
- Imported libva 2.22.0, an implementation for VA-API (video acceleration API). VA-API provides access to graphics hardware acceleration capabilities for video processing.
- Added an error message for sed(1) -i when the file is unwritable.
- Made the touchpad on the Samsung Galaxy Book4 Edge work via qcgpio(4).
- Added dwmshc(4) support for the RK3588 eMMC controller.
- Added RK3588 eMMC clocks and resets to rkclock(4).
- Fixed source and drain confusion in socket splicing somove().
- Added radiusd_file(8) module, providing authentication by a local file.
- Added missing function wcsnlen(3) (wcslen(3) with a max len argument).
- Made vmm(4) update the host cr3 in the vmcs to allow vmx(4) to restore the proper cr3 value on the next vm exit.
- Ensured users can define tables inside an anchor correctly in pf.conf(5).
- Unlocked IPv6 sysctl(2) net.inet.ip6.forwarding from net lock.
- Added elf_aux_info(3), designed to let userland peek at AT_HWCAP and AT_HWCAP2, using an interface from FreeBSD.
- Ensured inteldrm(4) can achieve RC6 and save a significant amount of power for SOi.
- Added RADIUS support to iked(8), including authentication, accounting and "Dynamic Authorization Extensions" (DAE).
- Marked IP protocol GRE as MP safe from socket layer.
- Stopped storing full IPv6 packet in common forwarding case.
- Removed internet PCB mutex.
- Rewrote dd(1) bytes/sec calculation to make signal handler safe on OpenBSD.
- Switched 'so_snd' of udp(4) sockets to the new locking scheme.
- Fixed a potential race condition in apldcp(4) where the screen could stay dark instead of waking up from suspend.
- Removed the net lock from sysctl(2) net.inet.ip.forwarding.
- Used atomic operations to access integers in sysctl(2).
- Added Dynamic Authorization Extensions (DAE) for RADIUS server to npppd(8).
- Used FEAT_RNG to feed entropy into the random subsystem on arm64 as on amd64.
- Updated libxcb to 1.17.0.
- Updated xcb-proto to 1.17.0.
- Updated appres to 1.0.7.
- Added the flags NOPERM, STALLED, SWAPPABLE and DOOMED to pstat(1) -v output.
- Implemented support for deeper idle states offered by PSCI. (This reduces the idle power usage of the Vivobook S15 by almost 50%).
- Hooked up the Qualcomm UEFI Secure Application that handles EFI variables to efi(4) to allow access to EFI variables through ioctls on /dev/efi.
- Updated libX11 to 1.8.9.
- Introduced radiusd_ipcp(8), a module providing IP configuration which manages the IP address pool.
- Added handling for C-u modifier in M-! and M-| to mg(1).
- Updated xcb-util-cursor to 0.1.5.
- Updated libXmu to 1.2.1.
- Updated libXext to 1.3.6.
- Updated libXdmcp to 1.1.5.
- Updated libXcursor to 1.2.2.
- Updated libXaw to 1.0.16.
- Implemented MSI multiple-vector support in dwpcie(4).
- Enabled namespaced builds by default for libssl and libcrypto.
- Fixed mg(1) auto-indent-mode with custom tab widths.
- Prevented rewriting /etc/rc.conf.local unconditionally.
- Reworked per proc and per process time usage accounting, removing a SCHED_LOCK() dependency.
- Removed SPKAC openssl(1) subcommand.
- Skipped the non-working switch port (cnmac2) on the 5-ports EdgeRouter POE.
- Implemented qcspmi(4) support for version 7 controllers.
- Added qcgpio(4) support for the ACPI PCIO pins necessary to support the keyboard, touchpad and touchscreen on the Qualcomm Snapdragon X Elite (X1E80100) laptops Asus Vivobook S15 and Lenovo Yoga Slim 7x.
- Implemented IPv6 forwarding IPsec only.
- Mapped BUS_SPACE_MAP_PREFETCHABLE to Normal-NC on arm64, speeding up framebuffer access significantly.
- Added Qualcomm Snapdragon X Elite (X1E80100) support.
- Added support for the numpad on newer macppc Apple Powerbooks with ukbd(4), with Num Lock set as Fn+F6.
- Added support for RADIUS accounting configurable in radiusd.conf(5).
- Changed radiusd.conf(5) syntax for "module" to take a {} block and "authentication" to go without. Specifying a "module" path is now optional.
- Prevented OFW crash if temperature for a zone can't be read while polling it.
- Modified IPCP to use {D,NB}NS servers from RADIUS.
- Moved to openssh-9.8.
- Retired dhclient(8). dchpleased(8) now handles IPv4 DHCP lease acquisition.
- Added rge(4) support for the Realtek RTL8126 chip.
- Disabled unwind(8) shared cache between resolvers to prevent segfault after libunbound update.
- Pushed socket re-lock to the vnode(9) release path within unp_detach().
- Implemented RSA key exchange in constant time.
- Implemented sleep button and EC events as wakeup events in acpi(4).
- Added tmux(1) "refresh-client -r" for control mode clients to provide OSC 10 and 11 responses to tmux so they can set the default foreground and background colors.
- Made acpibat(4) forward AC change notifications to acpiac(4), giving access to programs like apm(8).
- Added AMD SEV-related information provided by cpuid to dmesg(8).
- Add support for ACPI firmware that provides the base address of individual GIC redistributors in the per-CPU GIC MADT table entries.
- Added RK3588 support to rkusbphy(4).
- Enabled EPAN when available on arm64.
- Allowed the EFI devicetree fixup protocol to specify the amount of space needed.
- Stopped sending ICMP redirect when IP forwarding is IPsec-only.
- Protected global vm and vcpu state in vmd(8) with mutex.
- Enabled uvm percpu caches on luna88k.
- Used BUILDINFO to make sure sysupgrade(1) doesn't install an older snapshot over a newer one.
- Ensured loading a device tree using the "mach dtb" command gives firmware a chance to make modifications by using the EFI devicetree fixup protocol.
- Disabled the DSA signature algorithm by default.
- Added a "log" option to relayd.conf(5) rules.
- Made relayd(8) host handle disable/enable commands from relayctl(8) correctly in case multiple redirect instances use the same host in relayd(8) tables.
- Switched AF_ROUTE sockets to the new locking scheme.
- Ignored universal ctags extended metadata in tagaddress, making mg(1) search patterns work again.
- Made arc4random() depend on fewer subsystems by decoupling extract_entropy() from the enqueue_randomness() logic.
- Made ssh-keyscan(1) host/banner comments go to stderr instead of stdout and added a -q flag to silence them.
- Updated unbound to 1.20.0.
- Enabled uvm percpu caches on sparc64.
- Split ssh PerSourcePenalties address tracking to use separate tables and optionally different overflow policies, preventing misbehavior from IPv6 addresses from affecting IPv4 connections.
- Added support for the AMD Platform Security Processor (PSP) to ccp(4).
- Added RK3588 support to rktemp(4).
- Avoided powering down PCI devices when rebooting (satisfying some machines).
- Enabled UVM percpu cache on riscv64.
- Clamped CPU clock frequencies to [min,max] range when determining the initial perflevel for arm, arm64 and riscv64.
- Added RK3588 TSADC clocks and resets to rkclock(4).
- Enabled TCP Large Receive Offload in vio(4) and introduced the guest offload feature to turn LRO off/on.
- Allowed multiple EKU OIDs for BGPsec certs in rpki-client(8).
- Fixed a bug in rpki-client(8) for BGPsec Router certs where key usage was ignored.
- Introduced IFCAP_VLAN_HWOFFLOAD for vio(4) to signal handware can handle checksum or TSO offloading with inline VLAN tags.
- Introduced a new smtpd(8) K_AUTH service to allow offloading the credentials to a table for non-crypt(3) authentication.
- Included BUILDINFO file in the iso/img files and installed it in the miniroot if available.
- Made security(8) silently ignore setuid changes in relinked binaries to reduce false positives.
- Improved rpki-client(8) x509_get_purpose() to recognize TA and EE certs in addition to differentiating between CA and BGPsec Router certs.
- Stopped sysupgrade(8) from enforcing the next version key if installing a snapshot.
- Ensured the deepest possible C-state is selected during suspend-to-idle on amd64 and i386.
- Enabled TCP Large Receive Offload in vmx(4).
- Reworked rpki-client(8) trust anchor handling to prevent replay attacks where a man in the middle could supply valid TA certificates with outdated internet number resources.
- Enabled PerSourcePenalties by default in sshd(8).
- Added ssh(1) ability to penalize problematic client behavior with penalties of increasing duration against the client'by enabling sshd_config(5) option PerSourcePenalties. PerSourcePenaltyExemptList can be used to specify certain address ranges to exempt from penalties.
- Added support for VLAN tag offloading to dwqe(4).
- Enabled -fret-clean on amd64 for libc, libcrypto, ld.so, kernel, and all the ssh tools.
- Added hibernation support for ufshci(4).
- Enabled hibernate/resume to nvme(4) disks with 4096 byte sectors.
- Ensured concurrent calls to dequeue_randomness() will use some different events.
- Added -fret-clean option (amd64 and i386 only at first) to the compiler, defaulting to off. This causes the caller to clean the return address off the stack after a callq completes.
- Changed pledge, MAP_STACK and pinsyscall failures to use uprintf(9) rather than writing into dmesg(8).
- Introduced dhcp6leased(8), a daemon to manage IPv6 prefix delegations.
- Updated to xorgproto 2024.1.
- Fixed sndiod(8) server.device entries disappearing when usb devices are unplugged while in use.
- Made rad(8) honor prefixes delegated by DHCPv6.
- Added a warning when the deprecated sshd(8) -r option is passed.
- Ensured pmap_create() waits in the case of kernel virtual space shortage.
- Fixed WEP on athn(4) USB hostap, preventing potential "key not installed for sw crypto" panic.
- Added an implementation of "suspend-to-idle" on amd64, enabling suspend on machines that don't support S3.
- Converted SCHED_LOCK from a recursive kernel lock to a mutex.
- Reworked the pmap ASID handling to not require the SCHED_LOCK.
- Added a reset attempt for qwx(4) devices when firmware crashes.
- Made qwx(4) offload TKIP and CCMP crypto to hardware, fixing ARP and IPv6 multicast with WPA2.
- Fixed suspend/resume for ums(4) and umt(4).
- Prevented rkpmic4 power down after resume initiated by pressing the power button.
- Added rkpmic(4) support for configuring sleep voltage settings based on device tree settings for the RK809.
- Implemented wakeup interrupts on amd64.
- Added "N" to search backwards in tmux(1) tree modes.
- Added support for NVMe passthrough commands to allow software to get information about nvme(4) disks.
- Added ufshci(4) support for suspend/resume.
- Fixed pfsync(4) TCP-state not being updated for destination connection peer and reduced excessive pfsync traffic.
- Enabled UFS "Auto-Hibernation" in ufshci(4).
- Added support for Quectel EM060K to umb(4).
- Added mwx(4) support for MT7922.
- Fixed in-place decryption for EVP_chacha20_poly1305(), fixing hangs during the QUIC handshake with HAProxy using TLS_CHACHA20_POLY1305_SHA256.
- Mapped MSI-X in addition to MSI and INTx on rge(4).
- Switched AF_KEY sockets to the new locking scheme.
- Used pathconfat(2) to compare mtimes for the pax(1) -u and -Z options when the target is "too old."
- Turned sblock() to sb_lock rwlock(9) wrapper for all sockets. With this unification, sblock() should always be taken before solock() in all involved paths.
- Added pathconfat(2): pathconf(2) but with at-fd and flags arguments, the latter supporting the ability to get timestamp resolution of symlinks.
- Made rad(8) send source link-layer address option in router advertisements, preventing Apple devices from installing an unusable default route.
- Fixed signal handling and locking in vio(4) sysctl path.
- Created a new style relink-kit for sshd-sesion(8).
- Fixed IPsec in use with IP forwarding 2 logic.
- Added CH9102 support to uchcom(4).
- Updated to perl-5.38.2.
- Ensured giving UTF-8 command line arguments to apropos(1) allows searching in UTF-8 and ISO-Latin-1 encoded manual pages if the mandoc.db(5) was built makewhatis -T utf8.
- Ignored button events for the first ten seconds after resume to prevent some ACPI implementations from initiating a power down.
- Updated libpciaccess to 0.18.1.
- Added bio(4) support to nvme(4).
- Implemented hardware masking for MSI and MSI-X on amd64.
- Added support for using the power button function of the RK809 to rkpmic(4).
- Made installboot(8) run again after fw_update(8) on Apple silicon to pick up Apple boot firmware.
- Used %b to format amd64 cpu flag info in dmesg(8) to include raw values and streamlined display of flag information.
- Fixed a problem in pax(1) where the file list output was fully-buffered when used as part of a pipeline.
- Unlocked sigsuspend(2) and __thrsigdivert syscalls.
- Enabled ufshci(4) on amd64.
- Added missing error checks to all calls under libexec and sbin in case of ctime(3) and ctime_r(3) failures when timestamps are far off.
- Suppressed cache-info dmesg(8) lines when they are identical to the previous CPU (amd64).
- Forced MSS of TSO packets in hardware supported range in ixl(4).
- Fixed iwx(4) monitor mode after firmware update.
- Prevented firmware panic when iwx(4) runs in monitor mode with addresses configured on the interface and leaving 11n/11ac mode directly for monitor mode.
- Added smtpd-tables(7), an API to implement table(5) for smtpd(8).
- Added support for Tx checksum offloading to dwqe(4).
- Exposed igc(4) hardware counters to kstat(1).
- Updated awk(1) to the May 4, 2024 version.
- Added TSO capabilities to igc(4).
- Pushed solock() down to sosend() and removed it from soreceive() paths for unix(4) sockets.
- Fixed qwx(4) display in ifconfig(8) showing a mix of 802.11 modes after switching APs.
- Made witness(4) display lock cycles longer than two locks.
- Made "show witness" display witness(4) lock subtypes.
- Added support for Rx checksum offloading to dwqe(4).
- Made sndiod(8) discover new devices on SIGHUP and switch if a new device is higher priority (greater -F option number) than the current device.
- Aligned CRL and CSR version printing with certs.
- Fixed smtpd(8) IPv6 address parsing in file-backed table(5).
- Added vmctl(8) "status -r" to limit the output of "vmctl status" to only running VMs.
- Added per-CPU caches to the pmemrange allocator.
- Pushed solock() down to sosend() for SOCK_RAW sockets.
- Fixed sftp-server(8) home-directory extension implementation.
- Enabled em(4) on powerpc64.
- Dropped the vmm(4) and vmd(8) "continue" flag to simplify running a vcpu.
- Allowed writing buffers larger than BUFSIZ or st_blksize, vastly improving write performance.
- Updated libxkbfile to 1.1.3.
- Updated libXvMC to 1.0.14.
- Updated libfontenc to 1.1.8.
- Updated util-macros to 1.20.1.
- Updated makedepend to 1.0.9.
- Updated gccmakedep to 1.0.4.
- Updated font-util to 1.4.1.
- Updated encodings to 1.1.0.
- Updated xorg-docs to 1.7.3.
- Updated xsm to 1.0.6.
- Updated xrefresh to 1.1.0.
- Updated xprop to 1.2.7.
- Updated xpr to 1.2.0.
- Updated xmore to 1.0.4.
- Updated xmessage to 1.0.7.
- Updated xlsfonts to 1.0.8.
- Updated xload to 1.2.0.
- Updated xkbutils to 1.0.6.
- Updated xfontsel to 1.1.1.
- Updated xev to 1.2.6.
- Updated xedit to 1.2.4.
- Updated mkfontscale to 1.2.3.
- Updated xauth to 1.1.3.
- Updated listres to 1.0.6.
- Updated iceauth to 1.0.10.
- Updated editres to 1.0.9.
- Updated bitmap to 1.1.1.
- Updated xserver to 21.1.13.
- Updated awk(1) to the Apr 22, 2024 version.
- Added boot.conf(8) "machine idle [secs]" to halt at idle passphrase prompts for efi(4) systems.
- Masked off MAC management counter interrupts to prevent an interrupt storm in dwqe(4).
- Used -mno-fpu when compiling sparc64 with clang.
- Added display of the current line number as percentage of the total lines in vi(1) ruler.
- Removed bgpd(8) 'announce capabilities' as neighbor config stanza.
- Implemented RFC 4191 Default Router Preferences in rad(8).
- Made ftp(1) send Host: headers with CONNECT requests when tunneling TLS over an HTTP proxy.
- Allowed the newsyslog(8) -F flag to be used on its own.
- Added display of pf(4) fragment reassembly counters to pfctl(8) and systat(1).
- Stopped bgpd(8) from falling back to no capabilities when there is an OPEN/optional attribute error.
- Changed rpki-client(8) to require -x to enable P-256 support.
- Implemented rule 5.5 of RFC 6724 (Default Address Selection for IPv6) to prefer addresses in a prefix advertised by the next-hop.
- Mandated presence of CMS signing-time and disallowed binary-signing-time in rpki-client(8)-client8.
- Fixed ufshci(4) alignment issue where a DMA transfer scheduled on an odd slot would fail.
- Permitted null requests (aka server pings) from non-reserved ports in nfs.
- Provided crypto constant time operations for uint8_t.
- Synced RPKI Trust Anchor constraints to nro-delegated-stats.
- Set rpki-client(8) to Accept: */* HTTP header.
- Made ftp(1) send 'Accept */*' header.
- Switched tar(1) write default format to 'pax'.
- Fixed reading large pax(1) extended records.
- Added tar(1) -F option to select write format.
- Corrected detection of 'pax' format archives in pax(1) append mode.
- Updated Spleen kernel fonts to version 2.1.0.
- Fixed key share negotiation in HRR case.
- Prevented toctu issues in httpd(8) static file serving and auto index generation.
- Use route cache function in IP input.
- Made raw IPv4 and IPv6 sockets handle input in parallel.
- Switched pax(1) to write archives using the 'pax' format by default. Ramdisk versions will keep using ustar for writing.
- Added scandirat(3) from FreeBSD.
- Prevented a hang when the nvme controller has disconnected from the pcie bus.
- Removed support for the less(1) LESSOPEN and LESSCLOSE environment variables.
- Implemented support for AVX-512.
- Escaped newlines in file names in less(1).
- Protected vmm(4) activation with the vmm_softc rwlock.
- Updated nsd to 4.9.1.
- Updated unbound to 1.19.3.
- Split single TCP inpcb table into IPv4 and IPv6 parts.
- Added uchcom(4) support for the CH343 uart.
- Prevented userland change of the interface loopback flag, preventing a potential kernel crash.
- Added mcx(4) support for media types from the extended ethernet capabilities fields, fixing a gigabit SFP in the ConnectX-6 Lx.
- Made TCP debug code MP safe.
- Implemented TCP segmentation offload for vio(4).
- Fixed incorrect scaling when converting disk images in vmctl(8).
- Added tmux(1) option allow-set-title to forbid applications from changing the pane title.
- Prevented a crash if focusing a pane in tmux(1) that is exiting.
- Allowed operators to enforce the presence of certain capabilities in bgpd(8) sessions.
- Added PCI support for ufshci(4).
- Increased RTR PDU limit to 48k and limited number of SPAS to 10,000 in bgpd(8).
- Removed the armv7 "cubie" miniroot.
- Updated xserver to 21.1.12.
- Communicated cache-coherent DMA status on RISC-V via flags.
- Restricted use of direct mapping following support of RISC-V CPUs with MMUs with memory cacheability attributes.
- Prevented IP multicast sysctl(2) mrtmfc(2) from writing outside of allocation.
- Used pinsyscalls(2) to ensure libc.so is still treated as xonly with the removal of msyscall(2).
- Removed msyscall(2).
- Stopped grabbing the kernel lock in kbind(2).
- Enabled PAC in addition to BTI on arm64 such that JIT code matches the default branch protection provided by our base compiler.
- Implemented and enabled TSO in vmx(4).
- Implemented SO_ACCEPTCONN in getsockopt(2).
- Deleted the msyscall mechanism, now replaced by the stricter mimmutable+pinsyscalls.
- Updated Mesa to 23.3.6.
- Made spamd(8) advertise SMTPUTF8 and 8BITMIME extensions in EHLO, fixing potential interoperability issues when the real MTA supports those extensions.
- Fixed a crash in sndiod(8) when the device is disconnected and the clients are not migrated to another device.
- Created new-style relink kits for sshd(8) and ssh-agent(1).
- Updated libexpat to 2.6.2.
- Enforced the pinsyscalls(2) rules on non-static/ld.so/libc.so text segments.
- Added clocks for the RK3588 PWM controller to rkclock(4).
- Restricted listen(2) to sockets of type SOCK_STREAM or SOCK_SEQPACKET.
- Marked 'so_rcv' sockbuf of udp(4) sockets as SB_OWNLOCK.
- Prevented recursion inside wakeup(9) when scheduler tracepoints are enabled.
- Repaired malloc operation on systems where the malloc(3) page size is larger than the mmu page size.
- Stopped building the objective-C compiler.
- Used SBI calls to reboot or power down riscv64 machine when supported by firmware.
- Implemented Ed25519 signatures for CMS (RFC 8419).
- Fixed access to Alder Lake-N and Elkhart Lake eMMC.
- Removed pinsyscall(2) now that it has been replaced by pinsyscalls(2).
- Ensured the Milk-V Pioneer serial console is found.
- Introduced SB_OWNLOCK to mark sockets which 'so_rcv' buffer modified outside socket lock.
- Added support to have bcmpcie(4) as both PCIe bus and simplebus to enable use of the Raspberry Pi 5's RP1 I/O controller.
- Fixed a crash in ls(1) -l for files with bogus timestamp values.
- Fixed memory detection on the Milk-V Pioneer board.
- Implemented support for the RISC-V UEFI Boot Protocol.
- Implemented the chmod a-x bsd.upgrade trick in the sparc64 ofwboot bootloader.
- Rejected setting invalid versions for certs, CRLs and CSRs.
- Used 'sb_mtx' to protect 'so_rcv' buffer of unix4 sockets.
- Added error code support to libtls.
- Added VLAN_HWTAGGING capability to igc(4).
- Unlocked shutdown(2).
- Introduced rpigpio(4), a driver for the RP1 GPIO controller on the Raspberry Pi 5.
- Implemented resetting the PHY via a GPIO pin in cad(4), helping to enable the PHY on the Raspberry Pi 5.
- Removed obsolete whois(1) handle support.
- Converted libressl to use the BoringSSL style time conversions.
- Added Meinberg PCI510 to mbg(4).
- Made local ports bound during connect(2) unique per laddr rather than globally unique.
- Added patch(1) "-V none" to prevent making any backups.
- Fixed chroot(2) call in the lpd(8) control process.
- Limited NFS connections to originate from a reserved port.
- Allowed any device sample encoding in aucat(1).
- Reduced tmux(1) escape-time default to 10 milliseconds (from 500).
- Added display-menu -M to tmux(1) to always turn mouse on in a menu.
- Added AUDIO_GETDEV ioctl to "audio" pledge(2).
- Added generic channel mapping in place of aucat(1) -j and -c options.
- Reduced dmesg(8) spam by only printing about PCI resource conflicts for resources that are enabled.
- Implemented Spectre-V4 mitigations for arm64.
- Exposed aggr(4) per port information via kstat(1).
- Mitigated the RFDS (Register File Data Sampling) vulnerability present in Intel Atom CPUs (requires updated firmware).
- Made the LEDs work on the SolidRun ClearFog CN9130 Base.
- Fixed signed integer overflow in bnrand().
- Trimmed output of whois(1) to suppress some uninformative output by default, still accessible verbatim by using whois -S.
- Set ORIGINAL_RECIPIENT in the environment of MDA scripts for smtpd(8) postfix compatibility.
- Prevented potential firmware errors in Intel wifi drivers when APs send an ADDBA request early.
- Extended Spectre-BHB mitigation support to Cortex-A57.
- Cherry-picked libexpat fix for CVE-2024-28757, billion laughs attack.
- Exposed arm64 BTI support to userland.
- Enforced same-origin policy for HTTP redirects in rpki-client(8).
- Moved to 7.5-current.