OpenBSD
-current Changelog
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.
Changes made between OpenBSD 7.0 and -current
- Reworked garbage collector for unix(4) sockets to prevent potential kernel panics.
- Added address locators for the ACPI "bus" and used these to fix the order of the com(4) devices to match the traditional order on the ISA bus.
- Made "set skip on ..." in pf.conf(5) dynamic.
- Allowed bare numbers for key and mouse bindings in cwm(1).
- Made uniq(1) skip() each input line only once, improving performance.
- Introduced apliic(4), a driver for the I2C controller found on various Apple SoCs.
- Protected ipsec(4) input and output with the kernel lock to allow forwarding of non-ipsec traffic in parallel.
- Disabled minimum power consumption in bwfm(4) hostap mode, improving connection reliability when used as an access point.
- Updated to nsd(8) 4.3.9.
- Made dhcpd(8) start listening on DOWN interfaces.
- Made iwm(4) attach to PCI devices with product ID 0x31dc, part of the 9560 chip family.
- Introduced mtw(4), a driver for MediaTek MT7601U wifi devices.
- Added unbound and host-bound options for ssh(1) PubkeyAuthentication for hardware devices unable to sign longer pubkey authentication challenges.
- Required host-bound userauth requests for forwarded SSH connections.
- Gave ssh-agent(1) the ability to parse restrict-destination-v00@openssh.com constraints and to apply them to keys.
- Made ssh-add(1) accept a list of "destination constraints" that allow restricting where keys may be used in conjunction with an ssh-agent/ssh that supports session ID/hostkey binding.
- Fixed radeondrm(4) console colors on sparc64.
- Introduced aplmbox(4), a driver for the mailbox that provides a communication channel with additional cores integrated on Apple SoCs.
- Updated to LLVM 13.0.0.
- Attached com(4) over acpi(4) on amd64.
- Added create permissions to unveil(2) on ldapd(8).
- Restricted usbhidctl(1) and usbhidaction(1) file system access with unveil(2).
- Implemented em(4) support for selecting SMGII or SerDes mode depending on the plugged-in SFP transceiver and for reading out transceiver information via ifconfig(8).
- Used "rng-seed" and "kaslr-seed" properties from the device tree to mix extra entropy into the pool for arm64.
- Added pclk clock used by dwdog(4) on RK3399 to rkclock(4).
- Increased tee(1) I/O buffer size for 8KB to 64KB.
- Added handling of multi-port controllers to uslcom(4).
- Added a pane-border-format pane option to tmux(1).
- Reduced unnecessary usage of sys/cdefs.h includes.
- Cleaned up unnecessary sys/param.h includes across the kernel and userland, replacing some macros with local copies.
- Added a "vnode" parameter to VOP_STRATEGY(9).
- Added acpipci(4) support for interrupts represented by ACPI PCI Interrupt Link Devices, making PCI interrupts work on QEMU's SBSA target.
- Fixed a potential DOS associated with BIO_indent(3) when a caller asks for a negative number of bytes of output.
- Fixed a bug where iked(8) sent zero-prefixed NAT-T messages on port 500, causing parsing errors.
- Introduced aplpmgr(4), a driver for the power management controller found on various Apple SoCs.
- Taught the net80211 stack to remove corresponding frames from ic_pwrsaveq when a power-saving client decides to leave our hostap interface, preventing a panic.
- Allowed fdisk(8) to extend the default OpenBSD partition to the end of the disk, rather than truncating at the end of the last full cylinder.
- Fixed spurious abort of a VM by vmd(8) when the scheduler moves a VM to a different core while it is sleeping on a lock.
- Fixed broken vmd(8) "boot device cdrom" feature after a fix in seabios.
- Switched iwx(4) to new -67 firmware images.
- Disabled probe requests during scans in iwx(4) again, preventing device timeouts for some devices.
- Implemented bgscan_done() handlers for iwx(4) and iwm(4).
- Introduced an optional driver-specific bgscan_done() handler which allows the driver to take control of the roaming teardown sequence, ensuring that race conditions between firmware state and net80211 state are avoided.
- Fixed an xserver 1.21.1 crash when attempting to run fvwm(1) on an x61/965gm with the modesetting driver on amd64.
- Prevented a potential race which could make umount(8) fail spuriously in the installer.
- Improved the testing of credentials against inserted FIDO keys, reducing spurious "Confirm user presence" notifications for key handles relating to FIDO keys which are not currently inserted.
- Ensured ^C may be used to kill ssh(1) sessions where SessionType=none.
- Fixed removal of SAs that could not be flushed with ipsecctl(8) -F.
- Fixed booting from an IDE block device on the Sun Blade 100.
- Prevented select(2) from blocking if registering found pending events.
- Enabled uhid(4)/fido(4) on riscv64.
- Unlocked accept(2) and accept4(2) syscalls.
- Added iked(8) -V to display the version.
- Prevented a crash in slaacd(8) due to updating an interface which no longer exists.
- Let iwx(4) and iwm(4) use per-Tx-queue interface timers to ensure timeout if a particular Tx queue gets stuck.
- Added ssh-keygen(1) -Y match-principals operation to perform matching of principals names against an allowed signers file.
- Dropped support for netscape certificates and server gated keys in openssl(1).
- Released LibreSSL 3.4.2.
- Prevented the possible creation of MBRs with overlapping partitions 0 and 3 in fdisk(8).
- Fixed a panic when running utvfu(4) on xhci(4).
- Fixed timestamp printing in Signed Certificate Timestamps.
- Switched to calculating pppoe(4) session duration using system uptime rather than UTC.
- Updated to openchrome(4) 0.6.409.
- Switched LLD_ARCHs to llvm-ar(1).
- Introduced pcyrtc(4), a driver for the NXP PCF85063A/TP RTC chips.
- Implemented RFC6840 (AD flag processing) if using trusted name servers.
- Aligned memory allocation for USB device drivers and USB HC drivers, enlarging the USB memory pool.
- Added ikectl(8) "show certinfo" to show trusted CAs and certificates.
- Introduced iicmux(4), a driver that switches between I2C busses connected to a single I2C controller by using the pin muxing facilities of an SoC.
- Made config(8) -c cmdfile use lines from the command file for all input, not just commands. This allows complex actions like changing device parameters.
- Allowed interface names as scope-id in IPv6 link-local addresses in unbound(8).
- Made futexes work in shared anonymous memory.
- Fixed monitor mode on iwm(4) and iwx(4).
- Made uniq(1) ignore trailing newlines when comparing lines.
- Fixed a crash when xrandr(1) is invoked with X server 21.1.1.
- Added display of DNS information from sppp(4) to ifconfig(8).
- Disabled active scanning on iwm(4) 9260 and 9560 to prevent a device lockup.
- Installed missing scope identifiers for IPv6 link-local addresses for unwind(8) and resolvd(8).
- Fixed hilkbd(4) Swedish keyboard layout on non-PS/2 style keyboards.
- Improved and simplified timer handling in rc.d(8) "stop" and "reload".
- Switched to using long filenames by default with mount_msdos(8) on FAT filesystems.
- Added support for controlling keyboard LEDs to aplhidev(4).
- Implemented the probe variable in bt(5).
- Updated awk(1) to the Nov 3, 2021 version.
- Added support for 40MHz channels to iwn(4).
- Reduced the time overhead of kqueue(2)-based poll(2) and select(2) systems calls by keeping knotes between the system calls.
- Made config(8) -e work with ramdisk kernels.
- Fixed crashes in httpd(8).
- Fixed iwn(4) with 4965 devices.
- Retired switch(4), switchd(8) and switchctl(8).
- Updated to Xserver(1) 21.1.1.
- Updated to libXi 1.8.
- Updated to libXfixes 6.0.0.
- Updated to xorgprotos 2021.5.
- Updated to fontconfig 2.13.94.
- Updated to Freetype 2.11.0.
- Added support for PPP IPCP extensions for DNS to sppp(4).
- Fixed broken key exchange negotiation with matching proposals in iked(8).
- Added the sntrup761x25519-sha512@openssh.com hybrid ECDH/x25519 + Streamlined NTRU Prime post-quantum KEX to the default KEXAlgorithms list fo ssh_config(5) and sshd_config(5).
- Fixed ssh-keysign(8) for KEX algorithms that use SHA384/512 exchange hashes.
- Added gpiokeys(4) for arm64, a driver which handles events triggered by GPIO keys such as lid status and power button.
- Published rpki-client 7.5.
- Limited the number of publication points under a given TAL in rpki-client(8).
- Documented install.site(5), OpenBSD installation and upgrade customization.
- Fixed handling of interrupts shared between multiple swiic(4) devices.
- Allowed passing a different signal than SIGTERM in the default rc_stop() function in rc.subr(8).
- Made the kqread event filter MP-safe.
- Corrected httpd(8) version string checking, responding with 505 Version Not Supported rather than 400 Bad Request when the version format is incorrect.
- Limited the number of openrsync(1) processes being spawned by rpki-client(8) to 16.
- Fixed ASN1_TIME_diff(3) with NULL times.
- Added a cursor-style option to tmux(1).
- Fixed "(null node)" panics on run(4).
- Improved handling of FIDO keys on tokens which provide user verification on the device itself, including biometric keys.
- Corrected "!" escape handling in the installer when accepting WEP/WPA passphrase.
- Updated awk(1) to the October 12, 2021 version.
- Added uniq(1) support for arbitrarily long input lines.
- Prevented awk(1) access to uninitialized data.
- Improved SNI hostname validation.
- Stopped binding audio devices exposed by sndiod(8) to physical devices.
- Fixed "null node" panics in run(4).
- Added a cursor-colour option to tmux(1).
- Added aplhidev(4) support for the keyboard/touchpad on Apple M1 laptops.
- Enabled RFC 3779 (X.509 Extensions for IP Addresses and AS Identifiers) code in OpenSSl.
- Fixed octal escape parsing in tr(1) backslash().
- Disabled xterm(1) mouse tracking by default.
- Added aplspi(4), a driver for the SPI controller found on the Apple M1 SoC.
- Added igc(4), a driver for the Intel 2.5Gb Ethernet controllers.
- Made athn(4) attach to the Sony UWA-BR100.
- Changed sysctl(8) default to hw.perfpolicy=auto at startup, defaulting to 100% performance with AC power connected and using the auto algorithm when on battery.
- Fixed UNIX domain sockets leak in soclose().
- Updated to libepoxy 1.5.9.
- Limited rpki-client(8) HTTP requests to 2GB of data.
- Implemented openrsync(1) --max-size and --min-size.
- When downloading resident keys from a FIDO token, made ssh(1) pass back the user ID that was used when the key was created and append it to the filename the key was written to (if not the default).
- Unlocked the kevent(2) system call.
- Updated to libfido2 1.8.0.
- Made iked.conf(5) proto config option accept a list to allow specifying multiple protocols for a single policy.
- Improved unhibernate performance by skipping attach of irrelevant devices.
- Enabled vmx(4) on arm64.
- Cleaned up irrelevant uses of 3rd mode_t parameter for open(2)/openat(2), unused when not creating files.
- Ensured armv7 and arm64 efiboot allocate fresh memory for the device tree with at least one page of free space to extend into. This fixes booting on VMWare Fusion.
- Added rejection of malformed Subject Alternative Names at certificate creation time to LibreSSL.
- Added a way to force a color to RGB in tmux(1) and a format to display it.
- Fixed pfctl(8) $nr incorrect macro expansion.
- Fixed vi(1) use after free with unsaved buffer.
- Added -s and -S to tmux(1) display-popup to set popup and border style.
- Fixed application-set fg and bg in tmux(1) panes.
- Added httpd(8) custom error page facility.
- Added mount -ur/uw support to tmpfs.
- Unlocked top part of UVM fault hander on mips64.
- Used unveil(2) for the possible btrace(8) script file, dt(4) and ksyms(4) nodes.
- Used ifconfig(8) "join" command by default in hostname.if(5) files, replacing the old "nwid".
- Switched nsd(8) to enable default DNS cookies on, matching behavior as released in OpenBSD 7.0.
- Updated to nsd(8) 4.3.8.
- Implemented poll(2), select(2), ppoll(2) and pselect(2) on top of kqueue.
- Stopped prompting whether to fall back to HTTP in the installer, making the fallback automatic.
- Fixed a panic by prohibiting renames of tmpfs mount-points.
- Set klist lock for sockets to make socket event filters MP-safe.
- Made pipe event filters MP-safe.
- In httpd(8), stopped sending content alongside responses to HEAD requests.
- Stopped duplicating "Connection: close" headers in relayd(8), only adding it if it's not a websocket response.
- Provided common btrace(8) scripts kprofile.bt (to save kernel stackframes and produce flamegraphs) and runqlat.bt (to measure the latency of the scheduler runqueues).
- Added call to unveil(2) to restrict stty(1) -f filesystem access.
- Added support for tpm2 CRB interface to tpm(4), fixing recent S4 regressions on the Surface Go 2 caused by a firmware change.
- Retired asynchronous crypto API.
- Added new OpenSSL api SSL_write_ex, SSL_read_ex and SSL_peek_ex.
- Annotated an httpd(8) 413 error with "request body too large" in the error log.
- Fixed double free after allocation failure in bpf(4).
- Provided a way to determine our maximum legacy version for TLS in libssl, unbreaking RSA KEX for the TLS client when the non-version specific method is used with TLSv1.0 or TLSv1.1.
- Called pledge(2) later to prevent it from killing various games using ncurses when both stdout and stderr are redirected to a non-tty.
- Removed unusable route(8) -T and exec support from ramdisk.
- Reinstated the fips mode test functions to libcrypto.
- Added rcctl(8) "ls rogue" to show daemons which are running but not set as "enabled" in rc.conf.local(8).
- Fixed a potential buffer overflow in openssl(1) certhash.
- Renamed Pacific/Enderbury timezone to Pacific/Kanton.
- Fixed an interrupt storm on dwge(4) variants which support Energy Efficient Ethernet when connected to a switch which does so as well.
- Ensured enabled resolvers are honored by unwind(8) to keep unused forwarders disabled properly.
- Implemented rsync(1) --compare-dest, allowing specification of additional directories to check for files to be available.
- Prevented ssh(1) memory leak if getaddrinfo returns no addresses.
- Added protocol version checking to httpd(8).
- Ensured use of the correct encoding in xenocara when /etc/kbdtype is present with an attached ucc(4) keyboard.
- Removed hifn(4), safe(4) and ubsec(4) crypto drivers.
- Removed fdisk(8) "disk" editing command.
- Fixed httpd(8) to respond with 400 Bad Request when a client sends header lines without a colon.
- Bumped to LibreSSL 3.5.0.
- Added -T to set a popup title in tmux(1).
- Stopped ignoring carp(4) interfaces in dhcpleased(8).
- Removed an unused decoding of c/h/s from the MBR read from disk by fdisk(8).
- Updated to xterm(1) 369.
- Corrected installer to use "inet autoconf" properly for hostname.if(5) files.
- Returned to use of the SFTP protocol for scp(1).
- Added initial 40MHz support to the iwx(4) driver.
- Fixed a problem with repeat in tmux(1) copy mode.
- Released LibreSSL 3.4.1.
- Replaced lrint(3), lrintf(3), llrint(3) and llrintf(3) implementations from NetBSD with the existing FreeBSD implementations we were already using for lrintl(3) and llrintl(3).
- Fixed a tmux(1) redraw problem on automargin terminals.
- Modified syslog.conf(5) examples to use TLS rather than the plaintext protocols.
- Fixed file descriptor leak of /dev/tty on doas(1) auth failure.
- Added realpath(1), a wrapper for realpath(3) for use in ports.
- Enabled enforcing of RLIMIT_MEMLOCK on powerpc64.
- Reverted to use iwm(4) firmware v17 on Intel AC 7265, fixing instability issues on X1 Carbon gen3.
- Cached the old BSSID when roaming with iwx(4).
- Explicitly stopped iwx(4) Rx block ack when roaming between access points.
- Added support for 802.11n 40MHz channels to the iwm(4) driver.
- Added monitoring of 20/40MHz channel width changes in beacons sent by our access point, notifying drivers when the channel width has changed.
- Added support for 40MHz channels to net80211 RA.
- Fixed establishing legacy INTx interrupts on machines without a (usable) MSI interrupt controller.
- Merged bugfixes from upstream into less(1) including fixes for the prompt hiding feature (CTRL-P) and an integer overflow.
- Cached the old BSSID when roaming with iwm(4) so firmware commands can continue using it while roaming to a new AP.
- Stopped pkg_add(1) from communicating warnings starting with "XXX" which appeared to indicate errors.
- Ensured iwm(4) uses only the HT (high throughput) frame format for data frames.
- Allowed AUTH->AUTH state transitions in the iwm(4) and iwx(4) drivers again, needed if the access point uses band-steering.
- Removed the ifconfig(8) autoconfprivacy deprecation warning.
- Retired the Loongson platform.
- Fixed iwm(4) performance drop after roaming between APs in 11n mode.
- Applied a workaround in mvkpcie(4) to fix an external abort under load with athn(4).
- Added relicensed wireless firmwares from Realtek for rsu(4), rtwn(4) and urtwn(4) devices, allowing these devices to work without requiring a separate firmware download.
- Added a workaround for buggy athn(4) devices to prevent filling up the node cache when used in hostap mode.
- Made redistributable firmwares available across all architectures.
- Fixed memory leak in fuse(4) when calling namei(9).
- Fixed a panic when iwx(4) cannot find firmware at boot time.
- Released LibreSSL 3.3.5 and 3.2.7.
- Enabled X509_V_FLAG_TRUSTED_FIRST by default in the legacy verifier.
- Deleted expired DST Root CA X3.
- Prevented iwm(4) and iwx(4) attempts to transition toward the same state where this would result in a redundant or illegal state transition and a potential hang.
- Removed the constraint that fdisk(8) -b specified block count or block size must be greater than 63.
- Added support to pchgpio(4) for Cannon Lake H and Tiger Lake H platforms.
- Fixed a crash in tmux(1) when a session with multiple clients is destroyed but tmux does not close completely due to other sessions.
- Introduced gpiocharger(4), a driver providing support for battery chargers connected to GPIO pins, such as those found on the Pinebook Pro.
- Introduced gpioleds(4) for arm64, a driver providing support for LEDs connected to GPIO pins, such as those found on the Pinebook Pro.
- Reset the Tx timer upon validation of a BA notification sent by iwx(4) and iwm(4) firmware.
- Added support to umb(4) for SIMCom SIM7600.
- Released rpki-client 7.3.
- Removed wpath from less(1) secure mode pledge.
- Added iwx(4) Tx aggregation support.
- Added an ADDBA_OFFLOAD capability for wifi devices to manage Tx block ack sessions entirely in firmware.
- Released OpenBGPD 7.2.
- Cleared length of keys in vnconfig(8) alongside keys themselves.