|   | Released Oct 22, 2025. (59th OpenBSD release) Copyright 1997-2025, Theo de Raadt. Artwork by Apsephion. 
 
All applicable copyrights and credits are in the src.tar.gz,
sys.tar.gz, xenocara.tar.gz, ports.tar.gz files, or in the
files fetched via  | 
This is a partial list of new features and systems included in OpenBSD 7.8. For a comprehensive list, see the changelog leading to 7.8.
hw.cpuspeed work on Snapdragon X Elite
	machines.
    PS_NOBTCFI at
        fork(2)
        so forked children do not get killed by BTCFI safeguards.
  PS_PROFILE at
        fork(2).
	This lets child processes
	disable/reenable profiling when they deemed appropriate.
  fs.posix.setuid sysctl.
  ddb.suspend sysctl that will force "S0ix"
	suspend and skip suspend of inteldrm(4) and amdgpu(4) such that the
	display remains on during suspend.
  -R recovers/creates GPT/MBR from a file.
  -v
	was set.
  %z output in
	zic(8), and add DST offset.
  -t and -V options from tzcode2013d to
	zdump(8).
  -l option is not specified, never interpret "name"
	command line arguments as absolute or relative path names, not
	even for arguments that contain a slash and that do not resolve
	to a manual page name.
  /bsd on relink errors.
  IPPROTO_IP/IP_TOS and
	IPPROTO_IPV6/IPV6_TCLASS in
	pledge(2) "stdio".
	Previously these were restricted to "inet".
	However, setting TOS is low risk and this way a
	lot more attack surface from inet can be removed.
  _fc-cache user to run unprivileged when installing fonts.
  IPV6_RECVTCLASS to the authorized
	setsockopt(2)
	operations for IPPROTO_IPV6 in
	pledge(2)
	fixing recent chromium browser with IPv6.
  net.inet6.ip6.neighborgcthresh, which would disable
	the limit ND6 entries, and disallow setting negative values for
	net.inet6.ip6.maxdynroutes, which previously allowed
	unlimited redirect routes.
  net.inet6.ip6.soiikey sysctl.
  -T with = when arguments are not key=value pairs.
  -X) mode.
  -T alpn=value
	in nc(1).
  -n, which was broken in 2022.
  -B.
  -m.
  -p option can be used
	to adjust the number of threads.
  #ifdef mess and removing a few
	instances of undefined behavior.
    OPENSSL_SMALL_FOOTPRINT and OPENSSL_FIPSAPI.
    SIGILL-based CPU capability detection was removed.
	Instead, capabilities are now detected using a constructor on
	library load, which improves the incomplete coverage by calls
	to OPENSSL_init_crypto(3) on various entry points.
    NULL for memory BIOs.
    WarnWeakCrypto
        ssh_config(5)
	option, defaulting to on. This option is likely to control
        additional weak crypto warnings in the future.
      IPQoS
        IPQoS keyword in ssh_config(5) and
        sshd_config(5).
        -N option
	disables this behaviour.
      -U suppresses the
	automatic cleanup of stale sockets when it starts.
	-u forces a cleanup without keeping a running agent,
	-uu forces a cleanup that ignores the hostname.
	-T makes ssh-agent(1) put the socket back in /tmp.
    SIGINFO handlers to log active channel and
        session information.
      
          Match host foo
              RefuseConnection "foo is deprecated, use splork instead"
        
      INFO when PerSourcePenalties actually
        blocks access to a source address range. Previously this was
        logged at level VERBOSE, which hid enforcement
	actions under default config settings.
      -T output; fix
      -T instead of its
	deprecated alias "without-password".
      Many pre-built packages for each architecture:
Some highlights:
Please refer to the following files on the mirror site for extensive details on how to install OpenBSD 7.8 on your machine:
Quick installer information for people familiar with OpenBSD, and the use of the "disklabel -E" command. If you are at all confused when installing OpenBSD, read the relevant INSTALL.* file as listed above!
If your machine can boot from CD, you can write install78.iso or cd78.iso to a CD and boot from it. Refer to INSTALL.alpha for more details.
If your machine can boot from CD, you can write install78.iso or cd78.iso to a CD and boot from it. You may need to adjust your BIOS options first.
If your machine can boot from USB, you can write install78.img or miniroot78.img to a USB stick and boot from it.
If you can't boot from a CD, floppy disk, or USB, you can install across the network using PXE as described in the included INSTALL.amd64 document.
If you are planning to dual boot OpenBSD with another OS, you will need to read INSTALL.amd64.
Depending on your hardware, you can write install78.iso or cd78.iso to a CD and boot from it, or write a system specific miniroot to an SD card and boot from it after connecting to the serial console. Refer to INSTALL.armv64 for more details.
Write a system specific miniroot to an SD card and boot from it after connecting to the serial console. Refer to INSTALL.armv7 for more details.
Boot over the network by following the instructions in INSTALL.hppa or the hppa platform page.
If your machine can boot from CD, you can write install78.iso or cd78.iso to a CD and boot from it. You may need to adjust your BIOS options first.
If your machine can boot from USB, you can write install78.img or miniroot78.img to a USB stick and boot from it.
If you can't boot from a CD, floppy disk, or USB, you can install across the network using PXE as described in the included INSTALL.i386 document.
If you are planning on dual booting OpenBSD with another OS, you will need to read INSTALL.i386.
Write miniroot78.img to the start of the CF or disk, and boot normally.
Write miniroot78.img to a USB stick and boot bsd.rd from it or boot bsd.rd via tftp. Refer to the instructions in INSTALL.loongson for more details.
Copy 'boot' and 'bsd.rd' to a Mach or UniOS partition, and boot the bootloader from the PROM, and then bsd.rd from the bootloader. Refer to the instructions in INSTALL.luna88k for more details.
Burn the install78.iso image from a mirror site to a CDROM, and power on your machine while holding down the C key until the display turns on and shows OpenBSD/macppc boot.
Alternatively, at the Open Firmware prompt, enter boot cd:,ofwboot /7.8/macppc/bsd.rd
After connecting a serial port, boot bsd.rd over the network via DHCP/tftp. Refer to the instructions in INSTALL.octeon for more details.
To install, write install78.img or miniroot78.img to a USB stick, plug it into the machine and choose the OpenBSD install menu item in Petitboot. Refer to the instructions in INSTALL.powerpc64 for more details.
To install, write install78.img or miniroot78.img to a USB stick, and boot with that drive plugged in. Make sure you also have the microSD card plugged in that shipped with the HiFive Unmatched board. Refer to the instructions in INSTALL.riscv64 for more details.
Burn the image from a mirror site to a CDROM, boot from it, and type boot cdrom.
If this doesn't work, or if you don't have a CDROM drive, you can write floppy78.img or floppyB78.img (depending on your machine) to a floppy and boot it with boot floppy. Refer to INSTALL.sparc64 for details.
Make sure you use a properly formatted floppy with NO BAD BLOCKS or your install will most likely fail.
You can also write miniroot78.img to the swap partition on the disk and boot with boot disk:b.
If nothing works, you can boot over the network as described in INSTALL.sparc64.
If you already have an OpenBSD 7.7 system, and do not want to reinstall, upgrade instructions and advice can be found in the Upgrade Guide.
src.tar.gz contains a source archive starting at /usr/src.
This file contains everything you need except for the kernel sources,
which are in a separate archive.
To extract:
# mkdir -p /usr/src # cd /usr/src # tar xvfz /tmp/src.tar.gz
sys.tar.gz contains a source archive starting at /usr/src/sys.
This file contains all the kernel sources you need to rebuild kernels.
To extract:
# mkdir -p /usr/src/sys # cd /usr/src # tar xvfz /tmp/sys.tar.gz
Both of these trees are a regular CVS checkout. Using these trees it is possible to get a head-start on using the anoncvs servers as described here. Using these files results in a much faster initial CVS update than you could expect from a fresh checkout of the full OpenBSD source tree.
A ports tree archive is also provided. To extract:
# cd /usr # tar xvfz /tmp/ports.tar.gz
Go read the ports page if you know nothing about ports at this point. This text is not a manual of how to use ports. Rather, it is a set of notes meant to kickstart the user on the OpenBSD ports system.
The ports/ directory represents a CVS checkout of our ports. As with our complete source tree, our ports tree is available via AnonCVS. So, in order to keep up to date with the -stable branch, you must make the ports/ tree available on a read-write medium and update the tree with a command like:
# cd /usr/ports # cvs -d [email protected]:/cvs update -Pd -rOPENBSD_7_8
[Of course, you must replace the server name here with a nearby anoncvs server.]
Note that most ports are available as packages on our mirrors. Updated ports for the 7.8 release will be made available if problems arise.
If you're interested in seeing a port added, would like to help out, or just would like to know more, the mailing list [email protected] is a good place to know.