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:
Changes made between OpenBSD 6.6 and 6.7
- Released LibreSSL 3.1.1.
- Prevented the generation of corrupt OSPF Router (Type 1) LSAs in ospfd(8) and ospf6d(8).
- Prevented a panic in m_copydata(9) in ip6_pullexthdr() due to an invalid or corrupted hop6 option.
- Prevented a panic when a WPA2-enabled athn(4) hostap interface is reconfigured while the queue contains frames.
- Correctly disabled reading with the private community when read-write is set to disabled in snmpd.conf(5).
- Corrected handling of invalid ssh.com private keys using ssh-keygen(1) -i.
- Prevented a tmux(1) crash when removing the automatic-rename option.
- Prevented an occasional synchronization problem when playing youtube videos in chromium.
- Added an expandtab option to vi(1) which expands tabs to spaces in insert mode and when shifting and indenting/outdenting, similiar to the expandtab option in vim.
- Prevented a segfault by ensuring vmd(8) correctly terminates vm processes.
- Configured abcrtc(4) to allow trickle charging of a connected battery or capacitor.
- Added the ifconfig(8) 'nomimo' nwflag which disables MIMO in 11n mode, allowing working around packet loss in 11n mode if the wireless network device has unused antenna connectors.
- Fixed an issue in smtpd(8) where usernames always expanded to the @ wildcard if defined in the virtual alias file.
- Added tcpci(4), a driver supporting TCPCI-compliant USB Type-C port controllers.
- Added bcmclock(4) and bcmmbox(4) to armv7, fixing a hang because the clock for sdhc(4) cannot be enabled.
- Prevented an infinite dhclient(8) loop when the DHCP server disappears immediately after offering a lease.
- Offloaded CCMP (WPA2) encryption and decryption to athn(4) hardware, reducing CPU load during traffic bursts.
- Mapped em(4) descriptor rings coherent, improving performance on selected ARM64 machines with non-cache-coherent PCIe controllers.
- Added i.MX8MM support to dwpcie(4).
- Added imxpciephy(4), a driver for the i.MX7D's PCIe PHY, also implemented on the i.MX8MM.
- Allowed display of TLSv1.3 extension type with openssl(1) -tlsextdebug.
- Added bcmbsc(4), a driver for the Broadcom Serial Control (BSC) controller.
- Added RTL8821CE and RTL8822CE pci(4) ids.
- Added dsxrtc(4), a driver for the Maxim DS3231/DS3232 I2C RTC.
- Reduced the minimum allowed number of chunks in a CONCAT volume from 2 to 1, increasing the number of volumes which can be created on a single disk with bioctl(8) from 7 to 15.
- Increased the default number of audio devices to 4.
- Added bcmgpio(4), a driver for the Broadcom BCM283x GPIO controller.
- Added iked(8) support for switching rdomain on ipsec(4) encryption/decryption, configurable per policy with the new 'rdomain' option in iked.conf(5).
- Added support for automatically moving traffic between rdomains on ipsec(4) encryption or decryption, reducing the attack surface for network sidechannel attacks.
- Stored local-address by address family in bgpd(8), allowing configuration of both an IPv4 and IPv6 local-address on a group with correct binding of neighbors. Introduced 'no local-address' to reset a previously-set local address back to zero.
- Correctly parsed "0/0" as the default route when specifying the classless-[ms-]static-routes options in dhcpd.conf(5).
- Indicated the marked pane in tmux(1) choose mode in reverse, and added keys to set (m) and clear it (M), and to jump to the starting pane (H).
- Added bcmsdhost(4), a driver for the Broadcom "sdhost" SD controller found on the Raspberry Pi.
- Allowed tmux(1) main-pane-width and height to be specified as percentages.
- Added bcmdmac(4), a driver for the DMA controller found on BCM283x SoCs.
- Added support for the additional sdhc(4) controller found on the Raspberry Pi.
- Added a Broadcom BCM2711 pci(4) id.
- Prevented mcx(4) interface lockups due to completion queue overflow.
- Added a -groups option to the openssl(1) s_server, allowing EC groups to be configured.
- Added quirks for the sdhc(4) controller on the Raspberry Pi, providing microSD card or WiFi support depending on the firmware configuration.
- Added support for hardware with sdhc(4) controllers on busses only supporting 32-bit access.
- Added bcmirng(4), a driver for the RNG200 random number generator found on the Raspberry Pi 4.
- Fixed brightness keys on the x395 and other thinkpads with AMD graphics.
- Added bcmclock(4), a driver for the BCM283X CPRMAN clock controller.
- Added bcmmbox(4), a driver for the VideoCore messagebox interface on BCM283X.
- Added bcmpcie(4), a driver for the PCIe controller found on the Raspberry Pi 4.
- Disabled MSI for the AMD Hudson2 azalia(4) HDA to fix random lock ups.
- Disabled access for regular users to /dev/audio* and /dev/rmidi*, creating these devices owned by root:_sndiod.
- Rewrote the cron(8) flag-parsing code to be getopt-like, allowing tight formations like -ns and flag repetition. Renamed the "options" field in crontab(5) to "flags".
- Fixed a panic when using pppac(4) without pipex(4).
- Fixed an incorrect test for root in drm linux compatibility code.
- Allowed use of the IgnoreRhosts directive anywhere in an sshd_config(5) file, not just before Match blocks, and made it a tri-state option.
- Added crontab(5) -s flag to the command field, indicating that only a single instance of the job should run concurrently.
- Allowed cwm(1) configuration of window size based on percentage of the master window during horizontal and vertical tiling actions.
- Added the sndioctl(1) -n option to suppress variable names in output and the -q option to suppress output when setting variables, as in mixerctl(1).
- Added support for printing RFC 2332 NBMA Next Hop Resolution Protocol (NHRP) to tcpdump(8).
- Added support for the Armada 3720 CPU clock to mvclock(4).
- Fixed a "route contains no arp information" bug where a kernel routing table entry was incorrectly deleted upon insertion of a new entry.
- Switched powerpc to a machine-independent mplock implementation, allowing use of witness(4).
- Added cron(8) support for random values using the ~ operator.
- Added bse(4), a driver for the Broadcom GENET v5 network interface found on the Raspberry Pi 4.
- Added brgphy(4) support for the Broadcom BCM54210E.
- Made slaacd(8) honor the rdomain in which it runs when configuring the default route.
- Fixed mvneta(4) on arm64.
- Fixed a problem in iwn(4) where the link gets stuck since every CCMP encrypted frame is discarded by the AP as a replay.
- Updated to Xserver(1) 1.20.8.
- Stopped processing packets under non-exclusive netlock, preventing concurrency in the socket layer.
- Added acpi(4) support for the _CCA method, indicating whether DMA is cache-coherent.
- Added a -f filter argument to the tmux(1) list commands like choose-tree.
- Prevented data corruption on UDP receive socket buffers by grabbing the exclusive NET_LOCK() in the softnet thread.
- Added omcm(4), omclock(4) and omsysc(4) drivers that support the new bus structure used in current mainline Linux device trees.
- Added an -s flag to tmux(1) copy-mode to specify a different pane for the source content.
- Added TOKEN percent expansion to ssh(1) LocalForward and RemoteForward when used for Unix domain socket forwarding.
- Released LibreSSL 3.1.0.
- Updated perl(1) to 5.30.2.
- Added support for RK3328 Crypto/RNG clocks.
- Fixed an automatic Tx rate control issue in iwn(4).
- Ensured legacy ssl(8) session ID is persistent during a client TLS session, fixing an issue using TLSv1.3 with smtp.mail.yahoo.com.
- Added glass console support to rkdrm(4).
- Fixed the MAC address on Pandaboard-ES by increasing smsc(4) buffer size used to fetch device tree properties.
- Fixed the ifconfig(8) "media:" line for 11n wifi interfaces during and after bgscan.
- Added vmm(4) IOCTL handler to set the access protections of the ept.
- Modified iked(8) to always prefer generic signature authentication.
- Implemented support for "usb-nop-xceiv" PHYs.
- Fixed an iked(8) pubkey leak in the CA process for ASN-DN IDs.
- Prevented dhcpd(8) from referencing freed memory after releasing a lease with an unusually long UID.
- Added support for the cd-gpios property on ommmc(4).
- Enabled ffs2 in sgi bootblocks and ramdisks.
- Made ffs2 the default filesystem type on installs except for landisk, luna88k and sgi.
- Removed sitaracm(4).
- Added omrng(4), a driver for the random number generator found on TI OMAP SoCs.
- Moved to 6.7-beta.
- Implemented __atomic_is_lock_free for powerpc.
- Fixed powerpc libunwind for cpus without altivec.
- Modified mixerctl(1) to use /dev/audioctlN instead of /dev/mixerN.
- Restored enabling and setting the output tap delay in rkemmcphy(4), fixing the eMMC module on the rockpro64.
- Added rkrng(4), a driver for the random number generator found on various Rockchip SoCs.
- Fixed an automatic Tx rate control issue in iwm(4) and iwx(4).
- Fixed a crash when quotas were turned on while a process was traced with ktrace(1).
- Gave ssh-keygen(1) the ability to dump the contents of a binary key revocation list with
ssh-keygen -lQf /path.
- Made libossaudio use sndio(7) instead of the kernel mixer(4) interface.
- Switched the default compiler on powerpc to clang.
- Changed the sparc64 bootblocks to be able to read from ffs1, ffs2 and softraid, and enabled the ffs2 option for both floppies.
- Added a W position to tmux(1) display-menu -y to use the line above or below the status line containing the window list.
- Exposed the first 8 midi(4) devices to sndiod(8) clients if no -q options are used.
- Added a -T flag to tmux(1) resize-pane to trim lines below the cursor.
- Added non-regex search variants to tmux(1).
- Fixed MIMO rates with firmware-based rate scaling in iwm(4).
- Prevented stack trace saving from inspecting untrusted data on amd64, arm64 and i386.
- Reduced temporary address valid lifetime to 2 days in slaacd(8).
- Added support for additional Allwinner A80 clocks and resets in sxiccmu(4).
- Added imxpwm(4), a driver for the PWM controller found on various NXP i.MX SoCs.
- Enabled FFS2 on the landisk ramdisk.
- Fixed CPU frequency scaling support on the Librem5 Devkit.
- Added support for "alpha" suffixes in packages-specs(7), removing the need for workarounds in certain ports distfiles.
- Fixed amlpciephy(4) USB3 support when USB has not been initialized by U-Boot.
- Fixed user database corruption resulting from use of the ikectl(8) reload command.
- Added support for tmux(1) overlay popup boxes, created with the display-popup command.
- Prevented a system hang when tsleep(9) with PCATCH returned immediately without error when called during execve(2).
- Enabled use of em(4) with MSI-X.
- Corrected inappropriate rate selection in uaudio(4) preventing recording on devices supporting fewer rates for recording than playback.
- Fixed brightness controls on certain machines where the initial brightness values are returned out of range.
- Added the ikectl(8) "show sa" command to print information about the state of negotiated IKE SAs, their Child SAs and the resulting IPsec flows.
- Enabled backlight control use on the Pinebook Pro via wsconsctl(8).
- Fixed snmp(1) agent address parsing to allow IPv6 addresses to be used based on format, allow those without brackets to skip the port if it results in a nonsensical address (allowing use of ::1), and try to connect to the address immediately.
- Fixed a crash when no device ports have been registered in ofw.
- Taught i386 boot(8), cdboot(8) and pxeboot(8) about ffs2.
- Added clock support for i.MX8MM.
- Disabled apm(4) on the i386 floppy ramdisk.
- Added bdpmic(4), a driver for the ROHM BD71837 and BD71847 Power Management IC.
- Added support for reading the i.MX8MM temperature sensors to imxtmu(4).
- Fixed absolute timeout checking in __thrsleep(2).
- Added the MAXTSLP macro, the maximum sleep duration, to tsleep_nsec(9).
- Updated to unbound(8) 1.10.0.
- Switched USB to use non-coherent buffers for data transfers, dramatically improving performance on some ARM SoCs where the USB controller is not coherent with the caches.
- Added an ikectl(8) "reset id" command to reset all SAs from policies with matching destination IDs.
- Unlocked the flock(2) system call.
- Reworked AMD smt/core/package detection, helping prevent cores being misidentified as threads.
- Added panel support to rkanxdp(4).
- Aggregated duplicate bgpd(8) roa table prefix/source-as combos as a single entry with the longest maxlen length.
- Corrected iked(8) calculation of IPv6 address leases from small address pools.
- Taught macppc boot(8) about ffs2.
- Taught sparc64 boot(8) (but not the sparc64 bootblocks) about ffs2.
- Bumped nvme(4) max physio() i/o size to 128K.
- Resolved syscall speculation in armv7 cpus as in arm64, changing the system call ABI to skip two instructions and inserting speculation-blocking sequences.
- Blocked apmd(8) autoaction for 60 seconds after resume, preventing spurious suspend/resume cycles.
- Allowed hppa boot(8) to read from an ffs2 filesystem.
- Added /dev/drm[0-3] on arm64.
- Added a tmux(1) -d flag to run-shell to wait for delay before running the command (or delay with no command).
- Added a tmux(1) copy-mode -H flag to hide the position marker in the top right.
- Added tmux(1) C-g to cancel command prompt with vi(1) keys as well as emacs, and q in command mode.
- Modified tmux(1) -S server socket to be created with umask 177 rather than 117.
- Allowed alpha boot(8) to read from an ffs2 filesystem and adapted its custom installboot to deal with ffs2. Also fixed the partition read code to deal with offsets greater than 2G.
- Used lfence in place of stac/clac on pre-SMAP CPUs to protect against Load-Value-Injection attacks against the kernel.
- Fixed a kernel crash due to unlimited recursion caused by local outbound UDP broadcast/multicast packets sent by a spliced socket.
- Unlocked the fnctl(2) system call.
- Added a policy relookup to iked(8) to replace the default policy based on a received cryptographic parameter proposal.
- Added ure(4) support for Lenovo OneLine Plus Dock Ethernet.
- Prevented a panic due to missing sysctl(2) input validation.
- Prevented a kernel hang when no unlocked ffs_softdep worklist items could be processed.
- Adapted biosboot(8) so that it can read boot(8) from an ffs2 filesystem.
- Fixed "ipmi0: sendcmd fails" errors when there is an ipmi(4) sensor which is enumerated but has failed to be read.
- Improved ucom(4) to fix firmware upload on some microcontroller boards using DTR and RTS as signaling lines to reset the device and enter the bootloader.
- Generated three different BIRD outputs with rpki-client(8) -B: v1 with IPv4 and IPv6 routes, and v2.
- Added a PCI attachment driver for com(4) to support memory-mapped PCI devices which are part of a Low Power Subsystem (LPSS).
- Updated perl(1) Term::ReadKey to 2.38.
- Implemented microsecond resolution using microuptime(9) to avoid a hard hang when starting X on Intel Cherry Trail Atom processors.
- Allowed amd64 boot(8) to read from an ffs2 filesystem. Enabled ffs2 for floppy.
- Enabled the Rockchip video drivers.
- Implemented the page fault handler for CMA GEM buffers and made drm(4) attach to rkdrm(4), making KMS work on the RK3399 SoC.
- Stopped counting pages mapped as PROT_NONE against the RLIMIT_DATA limit, helping code which reserves large chunks of address space but populates it sparsely.
- Fixed MiRA's sub-frame error rate computation.
- Allowed loongson boot(8) to read from an ffs2 filesystem.
- Fixed endian swapping in xhci(4), allowing it to work again on octeon and other big endian architectures.
- Added rkdwhdmi(4), a driver for the HDMI transmitter found on the Rockchip RK3399 SoC.
- Added support for X553 controllers to ix(4).
- Introduced VPLL clock frequency setting to rkclock(4).
- Implemented support for read transfers larger than 32 bytes for rkiic(4) controllers and registered the i2c bus, allowing future HDMI support.
- Allowed arm64 and armv7 efiboot(8) to read from an ffs2 filesystem.
- Injected failure to fetch entropy with an rdrand() timeout as an entropic event, along with an additional rdtsc measuring the vmexit latency.
- Introduced mandoc(1) nodes which are semantically transparent, skipped when looking for previous or following high-level macros.
- Worked around a race condition in iwm(4) interrupt handling, and synced the fix to iwx(4).
- Introduced the sndioctl(1) utility to control audio parameters exposed by sndiod(8).
- Added a check in vmm(4) for pvclock(4) struct crossing of page boundaries, which could potentially corrupt host memory.
- Tightened rdmsr on svm in vmm(4).
- Added a workaround for delayed SMR dispatch, starting the SMR thread when all CPUs are ready for scheduling.
- Added the $REQUEST_SCHEME variable to httpd.conf(5), allowing preservation of the original connection type (http or https) for redirect locations.
- Increased throughput of the ifq pressure drop mechanism for bwfm(4).
- Fixed security vulnerabilities in smtpd(8). Corrected an out-of-bounds read in smtpd allowing an attacker to inject arbitrary commands into the envelope file to be executed as root, and ensured privilege revocation in smtpctl(8) to prevent arbitrary commands from being run with the _smtpq group. Released OpenSMTPD 6.6.4.
- Added retries and timeouts for test packets to radiusctl(8).
- Added usb(4) device support for an AMD hub on the APU2 and a Synaptics vendor id and two fingerprint readers.
- Fixed a tcpdump(8) crash when printing the contents of a malformed packet where the packet length was smaller than the size of the usbpcap header.
- Unlocked the ioctl(2) system call.
- Added support for devaliases for vnet in ldom.conf(5).
- Enforced that ksh(1) TMOUT is an integer literal to prevent command execution from the environment at shell initialization time.
- Added rkanxdp(4), an attachment driver for anxdp(4) on the RK3399.
- Added anxdp(4), a driver for the Analogix Display Port controller.
- Added rkvop(4), a driver for the RK3399's Video Output Processors.
- Added rkdrm(4), a driver providing kernel mode setting (KMS) functionality for the graphics hardware integrated on Rockchip SoCs.
- Added transport mode for child SAs to iked.conf(5).
- Worked around a panic when first accessing PCI config space on some rkpcie(4) cards by introducing a delay after link training.
- Added support for devaliases for vdisk in ldom.conf(5).
- Introduced a tmux(1) selection_active format for when the selection is present but not moving with the cursor.
- Updated en_US.UTF-8.src to Unicode 12.1.
- Ensured the first 2MB page of the amd64 kernel is correctly mapped read-only in the direct map.
- Corrected http auth combined with proxy auth in ftp(1).
- Corrected ftp(1) access to an https server with user/password through the "http_proxy" environment variable.
- Detected and prevented simple ssh(1) configuration loops when using ProxyJump.
- Fixed an mbuf corruption issue in net80211 hostap mode when overlarge SSIDs are used.
- Added IPv6 support to umb(4).
- Added openssl(1) s_client -tls1_3 and -notls1_3 options.
- Addressed an arm64 speculative execution issue by changing the arm64 system call ABI to skip two instructions and inserting a barrier after each system call.
- Fixed an issue where a vmm(4) guest could write to host memory by passing bogus addresses in pvclock(4).
- Added -a to the list-keys command in tmux(1) to also list keys without notes with -N.
- Introduced iwx(4), a driver for Intel AX200 WiFi devices.
- Prevented buffer overflows with uthum(4) by not assuming the report length given by the hardware is necessarily smaller than the length of the on-stack buffer.
- Pushed the KERNEL_LOCK() inside pgsigio() and selwakeup(), allowing separate addressing of the three subsystems: signal, poll/select and kqueue.
- Fixed host(1) to provide the correct name of the server to query.
- Released OpenSSH 8.2.
- Implemented a workaround for missing Tx completion interrupts in iwm(4) which could lead to failed decisions to roam to other APs.
- Checked battery life against autoaction level on power change events in apmd(8), making -z/-Z work with acpibat(4).
- Removed ~/.digrc support in dig(1).
- Added iwx(4) to fw_update(1).
- Fixed the Pinebook Pro's trackpad by ensuring only hid_input items are accepted when walking the HID descriptor.
- Added support for the RK3399's VOP clocks to rkclock(4).
- Implemented "strip" option in httpd.conf(5) for fastcgi to be able to have multiple chroots under /var/www for FastCGI servers.
- Moved dig(1) to /usr/bin.
- Allowed use of window-htile and window-vtile with the "empty" group clients in cwm(1).
- Extended the ipsecctl(8) parser to set the udpencap flag and port number of an SA.
- Added ssh(1) -Q key-sig option for all key and signature types, teaching ssh -Q to accept ssh_config(5) and sshd_config(5) algorithm keywords as an alias for the corresponding query.
- Fixed PIN entry bugs on FIDO ssh-keygen(1).
- Updated to libfido2 780ad3c25.
- Added support for handling hello retry requests in the ssl(8) TLSv1.3 client.
- Added support for very old firmware umsm devices with umsm(4) rather than umb(4).
- Added additional Apollo Lake pci(4) ids.
- Added Pericom PI7C9X2G404EL PCIe packet switch pci(4) id.
- Added additional Gemini Lake pci(4) ids.
- Enabled rge(4).
- Allowed mail.local(8) to be run as non-root, opening a pipe to lockspool(1) for file locking.
- Added an sshd_config(5) "Include" directive to allow inclusion of files.
- Unlocked the close(2) and dup(2) system calls.
- Made acpivout(4) stop calling ACPI methods directly to allow changing brightness other ways on certain machines, including the x395.
- Fixed a security vulnerability in smtpd(8) which could lead to a privilege escalation on mbox deliveries and unprivileged code execution on lmtp deliveries. Released OpenSMTPD 6.6.2.
- Added support for the urtwn(4) tp-link tl-wn823n (TRL8192EU).
- Added tmux(1) support for adding a note to a key binding with bind-key -N and using this to add descriptions to the default key binding. Using list-keys -N shows key bindings with notes. Changed the default ? binding to show a readable summary of keys.
- Set the default brightness level on attachment for pwmbl(4).
- Fixed pwmbl(4) attachment on the Pinebook Pro.
- Updated to xserver 1.20.7.
- Updated to libepoxy 1.5.4.
- Added simplepanel(4), a driver for simple display panels. This allows enabling of the Pinebook Pro display panel.
- Fixed dig(1) support for queries not on port 53, enabling dig -p as well as "set port=" in nslookup(1).
- Added a new __tmfd __syscall(2) that creates a new, unnamed file in /tmp.
- Prevented an amdgpio(4) interrupt storm seen on the Matebook D.
- Added support for legacy message callbacks, making openssl(1) s_client -msg work for handshake messages.
- Enabled umt(4) on arm64.
- Completed the initial TLSv1.3 implementation.
- Extended bgpctl(8) 'show neighbor' to include the received and set prefix count, as well as the max-prefix out limit if set.
- Implemented bgpd.conf(5)
max-prefix NUM out to limit the number of announced prefixes, avoiding leaks of full tables to upstreams and peers.
- Retired mesh(4).
- Switched to encrypted records in the TLSv1.3 server.
- Enabled processing and use of signature algorithms in TLSv1.3.
- Allowed dhclient(8) configuration of carp(4) interfaces.
- Removed ssh-rsa (SHA1) from the list of allowed CA signature algorithms.
- Implemented client hello processing in the TLSv1.3 server.
- Implemented sending client certificate requests for the TLSv1.3 server.
- Switched npppd.conf(5) to use pppac(4) instead of tun(4).
- Added ssh-keygen(1) "find-principals" to look up the principal associated with a signature from an allowed-signers file.
- Added pppac(4) code for a dedicated PPP Access Concentrator interface.
- Recognized BCM4345 rev 9 as shipped with the Pinebook Pro as an AMPAK AP6256 module in bwfm(4).
- Improved bwfm(4) on the Pinebook Pro by acking SDIO interrupts earlier on dwmmc(4).
- Enabled the TLSv1.3 client in libssl, making it available to clients using libtls, including ftp(1) and nc(1).
- Implemented support for SSL_peek() in the TLSv1.3 record layer.
- Prevented a panic when trying to map a zero-length framebuffer node in the Pinebook Pro's u-boot.
- Removed the rtfps(4) driver.
- Removed diffie-hellman-group14-sha1 from the default ssh(1) key exchange.
- Fixed cursor issues and suspend/resume on amdgpu(4) due to incomplete unmapping. This may help radeondrm(4) issues as well.
- Updated to Mesa 19.2.8.
- Allowed configuration of the ospfd(8) interface setting "type p2p" to be configured globally or per area.
- Imported dt(4), a driver and framework for Dynamic Profiling, and an accompanying bug tracer that speaks the bt(5) language.
- Made __thrsleep(2) and __thrwakeup(2) MP-safe.
- Enabled mmhub power gating on picasso within amdgpu(4).
- Fixed ftp(1) tls_handshake() usage, which would break ftp if an handshake wasn't successfully completed in one try.
- Fixed ssh-keygen(1) not displaying the authenticator touch prompt.
- Fixed support for additional I2C busses in piixpm(4) for older SB800 SMBus controllers. Prevented sensors from attaching four times on old AMD machines.
- Added support for TLSv1.3 as a protocol to libtls, making tls_config_set_protocols(3) recognize and handle "tlsv1.3".
- Introduced a new mdoc(7) macro .Tg ("tag") to explicitly mark a place as defining a term.
- Invalidated the knote(9) list of uhid(4) after device detach, preventing a crash that can happen when kqueue still holds references to knotes pointing to the device.
- Implemented ldomctl(8) "panic -c" to panic a guest domain (and enter ddb(4)).
- Renamed ssh-add(1) -O to -K to load resident keys from a FIDO authenticator.
- Implemented a df subcommand for snmp(1) which outputs disk and memory information in a df(1) format.
- Implemented a -Cs option in snmp(1) for snmp walk and bulkwalk, allowing subsections of a tree to be skipped.
- Added a -p command line option to iked(8) allowing configuration of the UDP encapsulation port.
- Implemented "start -c" in ldomctl(8) to automatically connect to the console.
- Allowed pfctl(8) to recursively flush rules and tables.
- Removed IPsec flow blocking unencrypted IPv6 traffic in iked(8).
- Fixed acpivout(4) screen brightness adjustment through function keys, better supporting machines using exponential brightness scaling.
- Updated to libXt 1.2.0, xauth 1.1, xhost 1.0.8, viewres 1.0.6, fonttosfnt 1.1.0 and libXmu 1.1.3.
- Added amlsm(4), a driver for the "secure monitor" firmware interface.
- Added amltemp(4), a driver for the temperature sensors on various Amlogic SoCs.
- Fixed Etron EJ168 USB 3.0 Host Controllers via USB 2 devices.
- Unlocked kqueue(2).
- Added the capability for armv7 boot from another block device than the one from which efiboot was loaded.
- Added thermal sensor clocks to amlclock(4).
- Removed the tmux(1) terminal type in favor of flags DECSLRM and DECFRA.
- Added a human-readable mode (-h) to systat(1).
- Introduced *sleep_nsec(9) to allow sleeping for a specified minimum duration, allowing use at the syscall layer and elsewhere within the kernel where this minimum duration is required.
- Added support for the SIERRA MC7700 to umsm(4).
- Removed the sli(4) driver.
- Fixed channel duplication (-j option) in sndiod(8).
- Prevented a kernel panic with "dangling vnode" during forced unmount.
- Removed the dpt(4) driver for DPT EATA SCSI RAID.
- Added an ADATA SX82000 Pro pci(4) id.
- Added -Z to the default tmux(1) switch-client command in tree mode.
- Allowed use of the smtpd(8) session username in built-in filters when available.
- Corrected verification of TLS certificates in nc(1).
- Implemented scrolling in top(1) using the 9 and 0 keys.
- Allowed ipmi(4) to attach using mmio.
- Updated to xorgproto 2019.2, libX11 1.6.9, libXi 1.7.10, libXvMC 1.0.12, libxkbfile 1.1.0 and libXpm 3.5.13.
- Allowed freeing of anons as a list of pages rather than one at a time, allowing for more efficient memory freeing.
- Introduced a -n option to ldomctl(8) to validate the configuration file and exit.
- Prevented a use-after-free causing crashes with uhidev(4) devices.
- Fixed RAID volume WWIDs for mpii(4) LSI controllers on sparc64, allowing autoconf(9) to identify the volume as the root device and boot off hardware RAID.
- Added timeout_set_flags(9) and TIMEOUT_INITIALIZER_FLAGS(9), allowing the caller to initialize timeouts with arbitrary flags.
- Added the ability to download FIDO2 resident keys from a token via the ssh-keygen(1) -K option and save public/private keys into the current directory.
- Unlocked pipe(2) and pipe2(2).
- Introduced option filter-pf-addresses to snmpd.conf(5), allowing the OPENBSD-PF-MIB::pfTblAddrTable tree to be filtered out when many prefixes are stored in pf tables, reducing CPU usage during bulk walks.
- Introduced efficient page freeing in reverse order from uvm, greatly improving cases of massive page freeing.
- Prevented read-only tmux(1) clients from limiting the size.
- Stopped performing a top-level sort(1) when -c is used with a -k field.
- Added ne(4) support on cbus(4).
- Implemented support for generating FIDO2 resident keys. "ssh-add -O" will load resident keys from a FIDO2 token and add them to an ssh-agent. Removed the -x option currently used for the FIDO/U2F-specific key flags, now under -O.
- Removed single letter flags for moduli generation in ssh-keygen(1) and moved all moduli generation options to under the -O flag. Breaks existing ssh-keygen commandline syntax for moduli-related operations.
- Updated perl to 5.30.1.
- Stopped switching to new APs found during background scans with RSSI levels which will also trigger background scans, helping to prevent repeated switching in areas where APs are tuned for low transmit range.
- Increased the net80211 node cache size.
- Updated to xterm(1) 351.
- Populated logical disk port WWNs with their RAID volume's WWID in mpii(4).
- Ran cu(1) in restricted mode using -r in vmctl(8) and ldomctl(8).
- Attached Symbios Logic Flash Accelerator eMLC cards.
- Added support for regex searches in tmux(1) copy mode.
- Stopped generating "cpu" nodes for disabled CPUs in ACPI mode for efiboot, fixing booting on ACPI machines where the MADT table lists CPUs which are disabled.
- Added point-to-point ospf6d(8) support for broadcast interfaces.
- Introduced TIMEOUT_SCHEDULED flag and tos_scheduled statistic to timeout(9).
- Updated to makedepend(1) 1.0.6.
- Updated to xrdb(1) 1.2.0.
- Ensured rdr-to with loopback destination will work even when IP forwarding is disabled.
- Added amdgpio(4), a driver for the GPIO controller found on newer AMD SoC/chipsets.
- Added arm64 support for lldb.
- Prevented ftp(1) from following remote redirects to local files.
- Allowed forwarding of a different agent socket to a specified path in ssh(1).
- Reduced stalling with lossy wifi by improving net80211 handling of the Rx block ack sequence number window and queue.
- Disabled TSX when MSR_ARCH_CAPABILITIES sets TSX_CTRL on amd64 and i386. Currently, TSX is disabled unconditionally when possible even if TAA_NO is set.
- Fixed rpki-client(8) -j option, which had not been producing any output.
- Validated authentication lengths in ripd(8) before use to prevent crashes.
- Updated to unbound(8) 1.9.6.
- Updated to nsd(8) 4.2.4.
- Reenabled firmware-based Tx retries at lower rates for iwm(4), reducing packet loss.
- Implemented unwindctl(8) status memory to show cache memory usage.
- Avoided false positives in witness(4) when detecting lock order reversals by using separate rwlock initializations for userland and kernel maps.
- Fixed arm64 speculative execution of instructions after ERET, which had led to spectre-like effects on some processors.
- Rejected leases in dhclient(8) not providing a subnet mask for the address being provided.
- Added fido(4), an HID driver for FIDO/U2F security keys.
- Added parsing of DDR4 and LPDDDR3/4 SPD memories to spdmem(4).
- Updated bind to 9.10.8-P1, the last ISC-licensed release.
- Added support to lm(4) for NCT6775F, NCT5104D, NCT6779D and NCT679D sensors.
- Added AMD FCH (KERNCZ) to the list of supported devices in piixpm(4).
- Updated piixpm(4) to support newer AMD chips like Hudson-2 and KERNCZ and implemented multi-bus support for SB800, Hudson-2 and KERNCZ.
- Extended the expected SPD types to include DDR4 and low-power DDR3/DDR4.
- Added pledge(2) inet to dig(1).
- Updated bind to 9.10.5-P3. This tree is only used to build host(1), dig(1) and nslookup(1).
- Made rpki-client(8) work with the existing cache and not exit if rsync(1) exits non-zero.
- Allowed ssh(1) security keys to act as host keys as well as user keys.
- Added support for gen2 negotiation to rkpcie(4) and enabled gen2 link state training when the dtb is configured with max-link-speed = 2.
- Introduced a bypass keyword to smtpd(8) so that built-in filters can bypass processing when a condition is met.
- Updated to libXfont2 2.0.4.
- Updated to font/util 1.3.2.
- Updated to font/encodings 1.0.5.
- Tightened permissions for USB device nodes.
- Removed gpr(4).
- Used ssh-sk-helper for all security key signing operations and security key enrollment. Most ssh(1) tools no longer need to link against libfido2 or interact with /dev/uhid* directly.
- Added support for CIDR in a: spf atoms in smtpd(8).
- Attached pvclock(4) with a lower priority in case of unstable tsc rather than not attaching at all.
- Prevented an overflow due to xen(4) failing to release the interrupt source when unmasking the interrupt.
- Reintroduced socket locking inside socket event filters.
- Fixed an issue where adjtime(2) could be set so low that time could be frozen until reboot.
- Allowed sleeping inside kqueue event filters.
- Prevented a hang in the boot loader on the HP EliteBook 830 G6.
- Modified tmux(1) source-file to allow reading from stdin.
- Updated to X server 1.20.6.
- Started virtual machines defined in vm.conf(5) in a staggered fashion, helping prevent overload of the host and improper tsc calibration in guests.
- Modified ldpd(8) to lookup the adjacency by LSR id as well as source IP address, as the remote peer may change its LSR id.
- Ensured that ld.so(1) removed the LD_LIBRARY_PATH environment variable for set-user-ID and set-group-ID executables in low memory conditions.
- Provided proper concurrency control when pausing a vm in vmd(8).
- Fixed isakmpd(8) IKE pcap file creation.
- Fixed empty response packages sent out by ripd(8) when entries are skipped due to split-horizon simple.
- Swapped smtpd(8) filter response protocol fields to match query protocol. Filters used will need updating.
- Re-enabled "syscall call-from" checking.
- Modified -z mode verification in signify(1) to save the header and output it, so signify -zV >saved.tgz will keep the signature for later checks.
- Reduced the maximum number of frame buffers for uvideo(4) to allow running higher resolutions without running out of kernel memory.
- Removed kernel VM86 support.
- Added a check when IP forwarding is disabled to ensure packet destination address matches interface address.
- Reset the login class each time through the loop when using -L (loop) mode with su(1). Fixes CVE-2019-19519.
- Retired piixpcib(4).
- Stopped hardcoding the cache directory for rpki-client(8). Cache and output directory will use defaults for root users and must be specified by non-root users.
- Enabled full use of jumbo frames on bnx(4) devices.
- Added DEBUG_PKG_CACHE functionality to pkg_add(1), fetching debug patches when packages are installed.
- Fixed xenodm(1) to use the libc authentication layer correctly.
- Fixed insufficient username validation performed by libc's authentication privilege separation layer and added additional validation points, further validating in login(1) and su(1).
- Fixed a panic when tearing down vms with vmm(4).
- Prevented a radiusd(8) crash when user does not exist.
- Prevented escalation to the auth group in xlock(1) through path-related environment variables and disabled mesa and opengl functionality.
- Added display of mode sense data to scsi(8) debug.
- Added pwmfan(4), a driver for PWM-regulated fans.
- Added rkpwm(4), a driver for the RK3399's PWM controller.
- Added support for the RK3399's PWM clock to rkclock(4).
- Added tcpdump(8) support for printing RFC 8300 Network Service Header (NSH).
- Added tcpdump(8) support for VXLAN-GPE.
- Rewrote dhcpv6 parsing in tcpdump(8) to match the rfc, correctly handling dhcpv6 messages.
- Assumed grep(1) -R passed with "." rather than printing a warning by default.
- Reverted switch to tickless backend.
- Allowed forcing specific domains to be resolved by specific resolvers in unwind.conf(5), handling typical split-horizon setups.
- Simplified sysupgrade(8) directory check and creation (/home/_syspatch). It can now be a symlink.
- Accepted netmask for IPv6 properly in ifconfig(8).
- Added a create-vdisk command to ldomctl(8) analogous to amd64's vmctl(8) create.
- Added uvm_objfree to uvm to efficiently free all pages from a uvm object, used in the buffer cache for considerable speedup when freeing pages.
- Added rkemmcphy(4), a driver for the RK3399's eMMC PHY.
- Added support for the RK3399's eMMC clock to rkclock(4).
- Introduced msyscall(2), permitting system calls from selected code regions only: the main program, ld.so(1), libc.so and sigtramp. This is intended to harden against a mixture of W^X failures and JIT bugs allowing syscall misinterpretation.
- Modified root's crontab(1) to run rpki-client(8) and reload bgpd(8) configuration, enabling RPKI ROA filtering.
- Modified buffer cache to use individual uvm_objs per buffer to speed page lookups.
- Decayed the unwind(8) resolver histogram data over time to reflect strategy performance.
- Removed the -r flag in rpki-client(8). CRLs will always be checked.
- Added the "console" command to ldomctl(8) which executes cu(1) on the domain's console.
- Printed guest domain vcctty(4) devices in status output in ldomctl(8).
- Removed km_mapblocks from kmemstats and its always-zero column from the ddb(4) "show malloc" output.
- Implemented a hexdump command in the bootloader, helping to inspect the memory layout created by the firmware and useful for UEFI debugging.
- Added list-io command to ldomctl(8), listing the available PCIe devices to be used with the iodevice parameter in ldom.conf(5).
- Measured performance of resolving strategies in unwind(8), sorting them and choosing the next best strategy when one fails.
- Removed captive portal detection from unwind(8).
- Reinstated support for monitor mode and multiple frames in iwm(4).
- Updated GLU to 9.0.1.
- Updated libdrm to 2.4.100.
- Added support for TLS 1.3 post handshake handshake messages and key updates to LibreSSL.
- Fixed scsi(8) softraid crypto volumes on 4K-sector disks.
- Faked disk info to match expected boot disk when EFI bootloader has been received via TFTP, fixing a hang during HP Elitebook UEFI boot.
- Fixed kernel crash in pf_ioctl with WITH_PF_LOCK and NET_TASKQ > 1.
- Switched to tickless backend in timeout(9), adding new interface timeout_at_ts(9) to avoid backwardly compatible behavior.
- Allowed use of 'auth' as an origin in smtpd.conf(5).
- Added support for MSI-X for iwm(4) devices.
- Allowed use of mail-from and rctp-to as for and from parameters in smtpd.conf(5).
- Computed RSSI on 9k iwm(4) devices as for previous generations, fixing spurious signal strength values of over 100%.
- Added a tmux(1) p format modifier for padding to width.
- Stored smtp(1) session usernames in an envelope, allowing the ruleset to match specific users or mailing addresses.
- Added "no-touch-required" options to ssh-keygen(1) and sshd(8) to disable touch requirement for authorized_keys and certificates.
- Added an sshd_config(5) PubkeyAuthOptions directive allowing specification of whether sshd(8) should check whether user presence was tested before a security key was made.
- Withdrew all proposals on slaacd(8) startup to prevent indefinite retention of nameservers on interfaces no longer flagged for autoconf.
- Prevented a timeout in ssh(1) when the server doesn't immediately send a banner, such as with multiplexers like sslh.
- Allowed rc.d(8) script to reload sndiod(8).
- Added tracking of which interfaces have learned nameservers to unwind(8).
- Improved ksmn(4) temperature conversion precision.
- Added a quirk to handle Apollo Lake, Gemini Lake and 100 Series Intel SD/MMC sdhc(4) controllers which should not have voltages set to 0V.
- Added Gemini Lake SD/MMC controller pci(4) ids.
- Ensured proper kernel stack alignment on mips64, fixing a panic on octeon related to pppoe(4).
- Adjusted on-wire signature encoding for ecdsh-sk ssh(1) keys to better match ec25519-sk keys.
- Fixed an off-by-one TRB issue in bulk transfers larger than 64k, making udl(4) work on xhci(4).
- Added iwm(4) support for 9260 and 9560 devices.
- Enabled ESP UDP-encapsulation with the iked(8) -t flag.
- Added -keyopt option to openssl(1) cms subcommand, providing rsa_padding_mode:oaep for cms -encrypt and rsa_padding_mode:pss for cms -sign.
- Added -f for full size to join-pane in tmux(1).
- Added rge(4), a new driver for Realtek 8125 PCI Express 2.5Gb ethernet devices.
- Repaired the "set delay" option for pf(4) to function as specified in pf.conf(5).
- Added the initial framework for the TLSv1.3 server.
- Used disable-bt overlay with raspberry pi to use pluart(4) as console, rather than the 'mini uart'.
- Added a -d option to pkg_add(1) to add debug packages if present alongside intended updates or additions.
- Fixed a segmentation fault in ncurses(3).
- Implemented HTTP/1.1 in ftp(1).
- Added direct support for U2F/FIDO2 security keys in ssh(1).
- Began resolving captive portal hosts internally in unwind(8).
- Changed tmux(1) new-session -A to attach to the best existing session when a session name is not specified, rather than creating a new session.
- Added an option to tmux(1) to set the key sent by backspace for systems using ^H.
- Prevented non-root users from using ioctl(2) to alter the address of a network interface.
- Prevented non-root users from setting the parameters of pppoe(4) interfaces.
- Prevented a local user from causing the system to hang by reading specific registers when Intel Gen8/Gen9 graphics hardware is in a low power state.
- Prevented writes to memory allowed by the Intel Gen9 graphics hardware.
- Notified the user via TTY or $SSH_ASKPASS when ssh(1) security keys must be tapped/touched in order to perform a signature operation.
- Enabled ed25519 support in ssh(1).
- Fixed iwm(4) support and loaded new firmware for 3168 devices.
- Enabled rpki-client(8).
- Printed the URL when sysupgrade(8) fetches new sets.
- Prevented a crash in ieee80211_node2req() which could be triggered by an ioctl(2) if the driver had not yet initialized the channel map.
- Implemented DNS proposals in unwind(8) to learn nameservers from network autoconfiguration daemons.
- Moved /usr and var remounting earlier to allow unwind(8) to start before pf(4) is configured.
- Added a Content-Security-Policy HTTP header to mandoc(1) that allows only CSS.
- Added an opportunistic run of fw_update(1) to sysupgrade(8) before rebooting to run the upgrade.
- Introduced a "trusted" modifier to ntpd(8), for peers which should be on a local net, used in situations where https constraints cannot be used but auto settime is desired.
- Stopped connecting to available open wifi networks when an interface is marked up. This behavior must now be explicitly enabled with ifconfig(8) join "".
- Added support for active scan to bwfm(4).
- Lowered the priority of APs which fail to connect in the ifconfig(8) join list, allowing switching wifi networks by moving between them without having to down/up the interface or suspend/resume.
- Triggered a background scan when root runs the ifconfig(8) scan command, updating the list of cached APs for future scans and forcing a search for a better AP to roam to.
- Switched 8260 and 8265 iwm(4) devices to -34 firmware.
- Added support for buttons 2 and 3 to imt(4).
- Enabled DNSSEC validation in unbound(8) by default.
- Prevented non-root users from setting the WEP key on an(4) wireless network devices.
- Added -F flag to tmux(1) send-keys to expand formats in search-backward and forward copy mode commands.
- Performed constraint validation against 188.8.131.52 and 2620:fe::fe by default in ntpd.conf(5).
- Fixed a bug where outstanding frames on the iwn(4) aggregation queue interfere with roaming to another AP.
- Raised net80211's "beacon miss" threshold to avoid frequent reconnects to APs suffering packet loss due to distance.
- Removed mobileip(4).
- Added ogx(4), a driver for the OCTEON III network processor.
- Reinstated OpenSSL(1) CMS.
- Switched iwm(4) 3160, 7260 and 7265 to -17 firmware images.
- Enabled DQA mode for iwm(4).
- Added support for iwm(4) firmware paging, required for newer 8k device firmware.
- Fixed a possible crash in smtpd(8) when combining "from rdns" with nested virtual aliases under a particular configuration.
- Released smtpd(8).
- Added opportunistic DoT support to unwind(8).
- Hooked rpki-client(8) up to the build.
- Enabled CMS in ssl(8).
- Added initial infrastructure for U2F/FIDO support in ssh(1).
- Constrained and corrected the routes being deleted when applying a new lease in dhclient(8) and corrected route comparison. This corrects a network failure with "arpresolve: ... route contains no information".
- Released OpenBGPD 6.6p0.
- Added support for RSA-PSS to crypto(3).
- Added an ASR resolver type to unwind(8), using the libc asynchronous resolver directly with DHCP-provided nameservers. Switched to the ASR resolver rather than DHCP when behind a captive portal.
- Made background scans less frequent when choosing the same AP.
- Began marking stale prefixes in the Adj-RIB-out during graceful reload of bgpd(8) and fixed prefix_withdraw to check the correct prefix flags before removing a prefix from the update or withdraw tree.
- Added an Intel 9260 wifi card pci(4) id.
- Added Marvell 88SE9128 AHCI pci(4) id.
- Fixed a bug with the fatal bgpd(8) non-existing prefix call to ensure the missing prefix is inserted into the prefix tree.
- Fixed bgpd(8) crashes where the nexthop_runners tail queue was corrupted.
- Improved error handling for bwfm(4) connection attempts.
- Added code laying groundwork for the use of multiple processors on armv7.
- Made vmx(4) transmit mp-safe.
- Corrected clock_getres(2) to provide the actual resolution of a given clock.
- Released OpenSMTPD 6.6.0.
- Allowed switching to framebuffer "glass" console on armv7, mirroring previous changes to arm64.
- Added retguard for octeon/mips64.
- Added a missing unveil(2) of /etc/shells for passwd(1).
- Printed IP addresses in verbose mode in nc(1).
- Reverted change to nc(1) fixing the -N flag due to regress failures for tls.
- Added sxisid(4), a driver to read the on-chip eFuses.
- Added new -N name option to ftp(1), allowing calling scripts to change the progname and produce better error messages.
- Updated timezone information to reflect DST changes for Fiji and Norfolk Island.
- Rewrote the time validity check for mtfs in rpki-client(8) to correctly account for the timezone.
- Added the system clock interface nanoboottime(9), returning the UTC time at which the system booted in seconds and nanoseconds.
- Added sxipwm(4) and pwmbl(4), drivers which jointly add support for the backlight controller on the Pinebook.
- On newer ThinkPads reporting HKEY version > 1, allowed acpivout(4) to claim backlight controls rather than wscons(4), allowing use of the fine-grained backlight BCL steps defined in acpi(4).
- Changed acpivout(4) to increment and decrement screen brightness based only on brightness level changes of 5% or higher.
- Prevented an infinite loop when aborting ulpt(4)'s pipe after an I/O error.
- Implemented the "parallel boot" feature on compatible sparc64 firmware.
- Corrected a memory leak in unwind(1) when the list of DHCP resolvers doesn't change.
- Stopped checking whether the IPv6 source address of a neighbor advertisement is from a neighbor's address, not required in accordance with RFC 4861.
- Added support for dynamic queue allocation (DQA) to iwm(4).
- Corrected cache flush operations on arm64 which were being incorrectly treated as write operations. This fixes a bug where cache flushing caused Firefox to abort.
- Fixed the -N flag for nc(1) to shut down the socket when input stops, or when tls is in use and either side of the socket goes away.
- Added rpki-client(8) output formats for bird and CSV.
- Fixed a potential NULL dereference for revoked hostkeys in ssh(1).
- Added support for percentage sizes to tmux(1) resize-pane ("-x 10%") and changed split-window and join-pane -l to accept similar percentages, deprecating the -p option.
- Made sparc64 autoconf(4) try to match the devid against the bootpath if link->port_wwn doesn't work, helping when booting off of an mpii(4) controller.
- Used unveil(2) to reduce filesystem access in vmstat(8), iostat(8) and systat(1).
- Changed httpd(8) to send a 408 response when a timeout happens while headers are being received, but close the connection if no request is received.
- Added an azalia(4) quirk for the ALC285 on the X1C7 to avoid a clicking noise on the headphone output.
- Moved to 6.6-current.