Annotation of www/69.html, Revision 1.54
1.1 deraadt 1: <!doctype html>
2: <html lang=en id=release>
3: <meta charset=utf-8>
4:
5: <title>OpenBSD 6.9</title>
6: <meta name="description" content="OpenBSD 6.9">
7: <meta name="viewport" content="width=device-width, initial-scale=1">
8: <link rel="stylesheet" type="text/css" href="openbsd.css">
9: <link rel="canonical" href="https://www.openbsd.org/69.html">
10:
11: <h2 id=OpenBSD>
12: <a href="index.html">
13: <i>Open</i><b>BSD</b></a>
14: 6.9
15: </h2>
16:
17: <table>
18: <tr>
19: <td>
20: <a href="images/XXX.png">
21: <img width="227" height="303" src="images/XXX-s.gif" alt="XXX"></a>
22: <td>
1.2 kn 23: Released May 1, 2021.<br>
24: Copyright 1997-2021, Theo de Raadt.<br>
1.1 deraadt 25: <br>
1.26 benno 26: This is the 50th OpenBSD release.<br>
27: <br>
1.1 deraadt 28: 6.9 Song:
29: <a href="lyrics.html#69">"XXX"</a>.
30: <br>
1.7 job 31: Artwork by Joy San.
1.1 deraadt 32: <br>
33: <ul>
34: <li>See the information on <a href="ftp.html">the FTP page</a> for
35: a list of mirror machines.
36: <li>Go to the <code class=reldir>pub/OpenBSD/6.9/</code> directory on
37: one of the mirror sites.
38: <li>Have a look at <a href="errata69.html">the 6.9 errata page</a> for a list
39: of bugs and workarounds.
40: <li>See a <a href="plus69.html">detailed log of changes</a> between the
41: 6.8 and 6.9 releases.
42: <p>
43: <li><a href="https://man.openbsd.org/signify.1">signify(1)</a>
44: pubkeys for this release:<p>
45:
46: <table class=signify>
47: <tr><td>
48: openbsd-69-base.pub:
49: <td>
50: <a href="https://ftp.openbsd.org/pub/OpenBSD/6.9/openbsd-69-base.pub">
51: RWQZj25CSG5R2oLo5735Hh6C48kkjFsj5rJDjW+fGZwyY+BkD5/zps8f</a>
52: <tr><td>
53: openbsd-69-fw.pub:
54: <td>
55: RWSYx4htNi/zavF8ZToMBDFz2xymRfFnnR1MEKV9csYbvnrTBwdkXhdy
56: <tr><td>
57: openbsd-69-pkg.pub:
58: <td>
59: RWQlDXyHx5KlPoEiz4yWRK/Gt/rvPwI8KEAt3utge/dBS7R+EscdzA5K
60: <tr><td>
61: openbsd-69-syspatch.pub:
62: <td>
63: RWRWuHkSV0U8PUX24vGa3ywrvKNQY6llV3PLvKEzDTiTVPfIRaXPfvzR
64: </table>
65: </ul>
66: <p>
67: All applicable copyrights and credits are in the src.tar.gz,
68: sys.tar.gz, xenocara.tar.gz, ports.tar.gz files, or in the
69: files fetched via <code>ports.tar.gz</code>.
70: </table>
71:
72: <hr>
73:
74: <section id=new>
75: <h3>What's New</h3>
76: <p>
77: This is a partial list of new features and systems included in OpenBSD 6.9.
78: For a comprehensive list, see the <a href="plus69.html">changelog</a> leading
79: to 6.9.
80:
81: <ul>
82:
83: <li>New/extended platforms:
84: <ul>
1.15 benno 85: <li>Support for the <a href="powerpc64.html">powerpc64</a> platform was improved:
86: <ul>
1.3 benno 87: <li>Added <a href="https://man.openbsd.org/astfb.4">astfb(4)</a>, a
88: driver for the framebuffer of the Aspeed BMC found on many POWER8 and
89: POWER9 systems.
90: <li>Added bsd.mp to powerpc64's installXX.{img,iso}.
91: <li>Added RETGUARD implementation for powerpc and powerpc64.
92: <li>Added a workaround for PCIO devices that cannot address the full
93: 64-bit PCI address space to powerpc64. Needed for <a
94: href="https://man.openbsd.org/radeondrm.4">radeondrm(4)</a> and <a
95: href="https://man.openbsd.org/amdgpu.4">amdgpu(4)</a> since Radeon
96: GPUs only implement 36, 40, or 44 bits of address space.
97: <li>Added limited emulation of unaligned access in the powerpc64 kernel.
1.41 kettenis 98: <li>Added support for netbooting to the powerpc64 RAMDISK kernel.
1.5 benno 99: <li>Fixed booting on powerpc64 machines with memory banks higher in
100: physical address space, needing a larger TCE table.
1.41 kettenis 101: <li>Introduced power-saving mode on POWER9 CPUs.
1.9 benno 102: <li>Enabled floating-point exceptions on powerpc64.
1.10 benno 103: <li>Added support for <a
104: href="https://man.openbsd.org/ipmi.4">ipmi(4)</a> on PowerNV systems.
1.15 benno 105: </ul>
1.41 kettenis 106: <li>Preliminary support was added for devices using the Apple M1 SoC:
1.15 benno 107: <ul>
1.41 kettenis 108: <li>Recognized Apple Icestorm/Firestorm cores on arm64.
109: <li>Added support for BCM4378 chips, as found on the Apple M1 SoCs, to
1.10 benno 110: <a href="https://man.openbsd.org/bwfm.4">bwfm(4)</a>.
111: <li>Added <a href="https://man.openbsd.org/exuart.4">exuart(4)</a>
1.28 fcambus 112: support for the UART found on the Apple M1 SoC.
1.10 benno 113: <li>Added <a href="https://man.openbsd.org/apldog.4">apldog(4)</a>, a
114: driver for the watchdog on Apple M1 SoCs, allowing reboot of the
115: machine.
116: <li>Added <a href="https://man.openbsd.org/aplintc.4">aplintc(4)</a>,
117: a driver for the interrupt controller found on Apple M1 SoCs.
118: <li>Added <a href="https://man.openbsd.org/aplpcie.4">aplpcie(4)</a>,
119: a driver for the PCIe host bridge on Apple M1 SoCs.
120: <li>Added <a href="https://man.openbsd.org/apldart.4">apldart(4)</a>,
121: a driver for the IOMMU on Apple M1 SoCs.
1.41 kettenis 122: <li>Added support for CPUs with 8-bit ASIDs such as those on
1.15 benno 123: Apple's M1 SoC.
124: </ul>
125: <li>The arm64 platform support was improved with the following changes:
126: <ul>
127: <li>Optimized arm64 <a
128: href="https://man.openbsd.org/copyin.9">copyin(9)</a>, <a
129: href="https://man.openbsd.org/copyout.9">copyout(9)</a> and <a
130: href="https://man.openbsd.org/kcopy.9">kcopy(9)</a> by doing 16-byte
131: copies if possible.
132: <li>Added recognition of Cortex-A78AE, Cortex-X1 and Neoverse V1 arm64 CPUs.
1.41 kettenis 133: <li>Added clock support for i.MX8MP SoCs.
1.15 benno 134: <li>Added support for the VF610 I2C controller to <a
135: href="https://man.openbsd.org/imxiic.4">imxiic(4)</a>.
136: <li>Added <a href="https://man.openbsd.org/dwgpio.4">dwgpio(4)</a>, a
137: driver for the Synopsys DesignWare GPIO controller.
138: <li>Added <a
139: href="https://man.openbsd.org/amlpinctrl.4">amlpinctrl(4)</a> support
140: for the "Always On" GPIOs.
141: <li>Made large read and write transactions work in <a
142: href="https://man.openbsd.org/amliic.4">amliic(4)</a>.
1.41 kettenis 143: <li>Added support for the PCIe controller found on Amlogic
144: G12A/G12B/SM1 SoCs to <a
145: href="https://man.openbsd.org/dwpcie.4">dwpcie(4)</a>.
146: <li>Implemented legacy interrupt support to <a
1.15 benno 147: href="https://man.openbsd.org/mvkpcie.4">mvkpcie(4)</a>.
148: <li>Added <a href="https://man.openbsd.org/cryptox.4">cryptox(4)</a>,
149: a driver for armv8 cryptographic extensions.
150: <li>Added support for PCIe on the NanoPi R4S to <a
151: href="https://man.openbsd.org/rkpcie.4">rkpcie(4)</a>.
1.34 patrick 152: <li>Added <a href="https://man.openbsd.org/smmu.4">smmu(4)</a>, a
153: driver for the ARM System MMU.
154: <li>Introduced an IOVA early-allocation scheme in <a
155: href="https://man.openbsd.org/smmu.4">smmu(4)</a>, mitigating the
156: performance penalty of typical IOVA allocation designs.
157: <li>Introduced Guard Pages in <a
158: href="https://man.openbsd.org/smmu.4">smmu(4)</a>, to spot misuse
159: and misconfiguration of I/O devices more easily.
1.41 kettenis 160: <li>Added support for RK809 to <a
1.15 benno 161: href="https://man.openbsd.org/rkpmic.4">rkpmic(4)</a>, as seen on the
162: Rock Pi N10 with the rk3399pro.
163: <li>Added support for <a
164: href="https://man.openbsd.org/sdhc.4">sdhc(4)</a> on the Raspberry Pi
165: in ACPI mode.
166: <li>Enabled <a href="https://man.openbsd.org/ixl.4">ixl(4)</a> on arm64.
167: <li>Updated device-tree bindings for <a
168: href="https://man.openbsd.org/cwfg.4">cwfg(4)</a> battery capacity
169: driver to correct attaching and account for monitoring interval
170: change, making cwfg(4) export values under hw.sensors as expected when
171: using a Pinebook Pro.
172: <li>Added ARMv8-5 instruction set related CPU features to arm64.
173: </ul>
174: </ul>
1.3 benno 175:
1.15 benno 176: <li>Various kernel improvements:
1.1 deraadt 177: <ul>
1.15 benno 178: <li>Added the RAID1C (encrypted raid1) <a
179: href="https://man.openbsd.org/softraid.4">softraid(4)</a> discipline,
180: encrypting data like the CRYPTO discipline and accepting multiple
181: chunks during creation and assembly like the RAID1 discipline.
182: <li>Corrected raidlevel verification specified by the -c option in <a
183: href="https://man.openbsd.org/bioctl.8">bioctl(8)</a>.
184:
185: <li>Introduced kern.video.record for <a
186: href="https://man.openbsd.org/video.4">video(4)</a> devices, a privacy feature analog
187: to the kern.audio.record <a
188: href="https://man.openbsd.org/sysctl.8">sysctl(8)</a> parameter for <a
189: href="https://man.openbsd.org/audio.4">audio(4)</a> devices. By
190: default, kern.video.record will be set to zero and blank all data
191: delivered by drivers attaching to <a
192: href="https://man.openbsd.org/video.4">video(4)</a>.
193: <li>Allowed a process to open a <a
194: href="https://man.openbsd.org/video.4">video(4)</a> device multiple
195: times. Fixes webcam usage with Firefox and BigBlueButton.
196: <li>Enabled multiple opens of a <a
197: href="https://man.openbsd.org/video.4">video(4)</a> device as
198: described in the V4L2 specification.
1.9 benno 199:
1.15 benno 200: <li>Added basic support for kclock timeouts to <a
201: href="https://man.openbsd.org/timeout.9">timeout(9)</a>.
202: <li>Changed the <a href="https://man.openbsd.org/pool.9">pool(9)</a>
203: timeouts to use the system uptime instead of ticks.
1.9 benno 204: <li>Ensured <a href="https://man.openbsd.org/sleep.3">sleep(3)</a>
205: calls <a href="https://man.openbsd.org/nanosleep.2">nanosleep(2)</a>
206: if seconds is zero, now delegating all decisions about whether or not
207: to yield the CPU.
1.5 benno 208: <li>Added a top-level 'reboot' command to <a
209: href="https://man.openbsd.org/ddb.4">ddb(4)</a>.
210: <li>Added <a href="https://man.openbsd.org/witness.4">witness(4)</a>
211: check for uninitialized (or zeroed) lock usage.
212: <li>Added fd close notification for kqueue-based <a
213: href="https://man.openbsd.org/poll.2">poll(2)</a> and <a
214: href="https://man.openbsd.org/select.2">select(2)</a>.
215: <li>Added a global "nowake" channel for threads avoiding <a
216: href="https://man.openbsd.org/wakeup.9">wakeup(9)</a> to <a
217: href="https://man.openbsd.org/tsleep.9">tsleep(9)</a>.
1.15 benno 218:
1.5 benno 219: <li>Added trace points for <a
220: href="https://man.openbsd.org/malloc.9">malloc(9)</a> and <a
221: href="https://man.openbsd.org/free.9">free(9)</a>, making them
222: traceabe via <a href="https://man.openbsd.org/dt.4">dt(4)</a> and <a
223: href="https://man.openbsd.org/btrace.8">btrace(8)</a>.
1.15 benno 224: <li>Added <a href="https://man.openbsd.org/btrace.8">btrace(8)</a> -n
225: (no action) mode, which parses the program and then exits.
1.9 benno 226: <li>Fixed a boot-time crash on sparc64 due to mutex use during the
227: message buffer initialization.
1.15 benno 228: <li>Prevented a panic in some ACPI firmware that provided invalid
1.9 benno 229: memory regions in their reserved memory region reporting table.
230:
1.10 benno 231:
232: <li>Added a barrier between reading the cqe flags and the command ID
233: to prevent completion of the wrong scsi io for <a
234: href="https://man.openbsd.org/nvme.4">nvme(4)</a> drives.
1.52 krw 235: <li>Prevented attachment of <a href="https://man.openbsd.org/nvme.4">nvme(4)</a>
236: devices of zero size.
1.9 benno 237: <li>Introduced new function <a
238: href="https://man.openbsd.org/if_unit.9">if_unit(9)</a>, returning a
239: pointer to the interface descriptor corresponding to the unique name.
1.10 benno 240: <li>Clear interrupts on luna88k processors more efficiently at boot
241: time.
242: <li>Added <a
243: href="https://man.openbsd.org/acpiiort.4">acpiiort(4)</a>, a driver
244: for the ACPI I/O Remapping Table.
1.15 benno 245: <li>Updated clock interrupt count atomically on mips64.
246: <li>Prevented an amd64 kernel crash with protection fault due to an
247: invalid offset when reading /dev/kmem.
248: <li>Permitted access to kern.somaxconn sysctl information when the
249: unix <a href="https://man.openbsd.org/pledge.2">pledge(2)</a> is used,
250: allowing Go programs to use "unix" without also including "inet".
251: <li>Excluded the first page and added a guard page between I/O
252: virtual address space allocations on arm64.
1.52 krw 253:
254: <li>Prevented attachment of SCSI devices that fail to provide
255: adequate INQUIRY data.
1.20 benno 256: </ul>
1.22 benno 257:
1.20 benno 258: <li>SMP Improvements
259: <ul>
1.23 benno 260: <li>Introduced "if_cloners_lock" rwlock and used it to serialize
261: if_clone_{create,destroy}(), avoiding multiple race conditions.
1.20 benno 262: <li>Introduced a system-wide mutex that serializes msgbuf operations.
1.23 benno 263: <li>Made <a
264: href="https://man.openbsd.org/uvm_pagealloc.9">uvm_pagealloc(9)</a> of
265: the physical memory allocator mp-safe.
1.20 benno 266: <li>Unlocked <a href="https://man.openbsd.org/getppid.2">getppid(2)</a>.
267: <li>Introduced locking for amaps and anons, improving build performance.
1.23 benno 268: <li>Moved UNIX domain sockets out of the kernel lock, using the new
269: "unp_lock" <a href="https://man.openbsd.org/rwlock.9">rwlock(9)</a> as
270: solock()'s backend to protect the whole layer.
1.20 benno 271: <li>Unlocked <a href="https://man.openbsd.org/sendsyslog.2">sendsyslog(2)</a>.
272: <li>Used per-CPU counter for fault and stats counters reached in uvm_fault().
273: </ul>
1.22 benno 274:
1.20 benno 275: <li>Direct Rendering Manager
276: <ul>
1.23 benno 277: <li>Implemented linux interval tree functions for <a
278: href="https://man.openbsd.org/drm.4">drm(4)</a>.
279: <li>Fixed <a
280: href="https://man.openbsd.org/wsconsctl.8">wsconsctl(8)</a> display
281: commands when using <a href="https://man.openbsd.org/drm.4">drm(4)</a>
282: drivers on macppc.
283: <li>Changed from <a
284: href="https://man.openbsd.org/rwlock.9">rwlock(9)</a> to <a
285: href="https://man.openbsd.org/mutex.9">mutex(9)</a> for linux rwlocks.
286: <li>Fixed a panic associated with locks and <a
287: href="https://man.openbsd.org/drm.4">drm(4)</a> on macppc with
288: Powerbook5,6 and RV350.
289: <li>Revised the initialization of the <a
290: href="https://man.openbsd.org/drm.4">drm(4)</a> Linux emulation layer
291: to call it only when the first drm instance attaches.
292: <li>Fixed DRI3 support on <a
293: href="https://man.openbsd.org/amdgpu.4">amdgpu(4)</a> and <a
294: href="https://man.openbsd.org/ati.4">ati(4)</a>.
295: <li>Created /dev/ drm nodes with the same names as linux to simplify
296: libdrm and negate the need for certain ports patches.
1.20 benno 297: </ul>
1.22 benno 298:
1.20 benno 299: <li>VMM/VMD improvements
300: <ul>
1.10 benno 301: <li>Prevented memory corruption or improper page access in <a
302: href="https://man.openbsd.org/vmm.4">vmm(4)</a> due to improper TLB
303: flushing for now by wiring the pages used by virtual machines.
1.15 benno 304: <li>Removed the ability of <a
305: href="https://man.openbsd.org/vmd.8">vmd(8)</a> to boot from kernels
306: in raw/qcow2 images.
307: <li>Made <a href="https://man.openbsd.org/vmctl.8">vmctl(8)</a>
1.27 dv 308: properly indicate VMs are stopping instead of "running" with "vmctl
1.15 benno 309: status".
310: <li>Cleaned up events on <a
311: href="https://man.openbsd.org/vmd.8">vmd(8)</a> pause or resume and
312: fixed an issue leading to broken serial console by cleanly tearing
313: down and restoring emulated device state on vm send/receive.
314: <li>Propagated host-side <a
315: href="https://man.openbsd.org/tap.4">tap(4)</a> lladdr to guest vm
316: process to allow unicast dhcp and bootp renewals with <a
317: href="https://man.openbsd.org/vmd.8">vmd(8)</a>'s built-in dhcp
318: server.
1.27 dv 319: <li>Added <a href="https://man.openbsd.org/veb.4">veb(4)</a> to the
320: list of supported bridges for <a
321: href="https://man.openbsd.org/vmd.8">vmd(8)</a>.
322: <li>Improved MSR exit handling in <a
323: href="https://man.openbsd.org/vmm.4">vmm(4)</a> on SVM and VMX
324: hosts preventing invalid reads and fixing support for 9front.
325: <li>Added ability to boot compressed ramdisks to <a
326: href="https://man.openbsd.org/vmd.8">vmd(8)</a>.
1.1 deraadt 327: </ul>
328:
329: <li>Various new userland features:
330: <ul>
1.3 benno 331: <li>Added <a
332: href="https://man.openbsd.org/doas.conf.5">doas.conf(5)</a> "nolog"
333: option to avoid <a
334: href="https://man.openbsd.org/syslog.3">syslog(3)</a>.
335: <li>Allowed specific <a
336: href="https://man.openbsd.org/sndio.7">sndio(7)</a> devices to be used
337: for play-only and rec-only modes.
1.9 benno 338: <li>Use an 8th order FIR low-pass filter for resampling in <a
339: href="https://man.openbsd.org/sndiod.8">sndiod(8)</a> and for <a
340: href="https://man.openbsd.org/aucat.1">aucat(1)</a>, removing most of
341: the aliasing noise during resampling.
1.10 benno 342: <li>Disabled <a href="https://man.openbsd.org/sndiod.8">sndiod(8)</a>
343: autovolume by default and set the default volume to 127. Setting "-w
344: on" will replicate the previous behavior of automatically decreasing
345: playback volume when new programs start playing.
346: <li>Allowed mixing of alternative devices (-F) with different
347: capabilities in <a
348: href="https://man.openbsd.org/sndiod.8">sndiod(8)</a> by treating any
349: device as full-duplex.
1.15 benno 350: <li>Fixed visibility of <a
351: href="https://man.openbsd.org/sndioctl.1">sndioctl(1)</a> output when
352: used through a pipe.
353:
1.10 benno 354: <li>Enabled build and install of <a href="https://man.openbsd.org/lldb.1">lldb(1)</a>.
355: <li>Added <a href="https://man.openbsd.org/logger.1">logger(1)</a>
356: support to <a href="https://man.openbsd.org/rcctl.8">rcctl(8)</a>, <a
357: href="https://man.openbsd.org/rc.subr.8">rc.subr(8)</a> and <a
358: href="https://man.openbsd.org/rc.d.8">rc.d(8)</a> for daemons logging
359: to stdout/stderr.
360:
1.15 benno 361: <li>Added a configurable button mapping for tap gestures on touchpads
362: to <a href="https://man.openbsd.org/wsconsctl.8">wsconsctl(8)</a>.
363: <li>Made <a href="https://man.openbsd.org/wscons.4">wscons(4)</a>
364: touchpad tap detection less restrictive for multi-finger taps and
365: improved tap detection.
366: <li>Enable <a
367: href="https://man.openbsd.org/man4/arm64/apm.4">apm(4)</a> on arm64 to
368: display meaningful information about battery use and capacity.
1.1 deraadt 369: </ul>
370:
371: <li>Various bugfixes and tweaks in userland:
372: <ul>
1.3 benno 373: <li>Fixed a pledge violation in <a
374: href="https://man.openbsd.org/csh.1">csh(1)</a> where redirecting
375: input from a file containing ^T would cause csh(1) to perform a tty
376: ioctl operation against a non-tty.
1.14 tb 377: <li>Made <a href="https://man.openbsd.org/syspatch.8">syspatch(8)</a> work
378: again when fewer than 3 patches are available.
1.3 benno 379: <li>Stopped exempting file systems from <a
380: href="https://man.openbsd.org/security.8">security(8)</a> on the basis
381: of nodev and nosuid options, which may not be used for file systems
382: mounted beneath.
383: <li>Modified <a href="https://man.openbsd.org/daily.8">daily(8)</a>
384: to stop reporting disk status and networking statistics.
385: <li>Made <a
386: href="https://man.openbsd.org/sysupgrade.8">sysupgrade(8)</a> specify
387: a version when it uses <a
388: href="https://man.openbsd.org/fw_update.1">fw_update(1)</a> to avoid
389: the situation where upgrading a pre-6.8 snapshot to 6.8 release with
390: "-r" would install firmware packages from snapshots.
391: <li>Increased speed of the dependency check pass for <a
392: href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a>.
393:
394: <li>Prevented process exit in multithreaded programs from reporting
395: the wrong error code.
396:
1.52 krw 397: <li>Allowed booting of amd64/i386 from GPT formatted disks larger than 4TB.
1.5 benno 398:
399: <li>When using the <a href="https://man.openbsd.org/cat.1">cat(1)</a>
400: -n flag, correctly enumerate files with more than INT_MAX lines.
401: <li>Fixed a memory leak in ld.so's malloc.
1.15 benno 402:
1.9 benno 403: <li>Added a "xenodm" login class for <a
404: href="https://man.openbsd.org/xenodm.1">xenodm(1)</a> and increased
405: openfiles to 512 to avoid running out of file descriptors with a busy
406: desktop.
1.15 benno 407: <li>Stopped <a href="https://man.openbsd.org/xenodm.1">xenodm(1)</a>
408: from adding authorizations for TCP connections by default and added
409: "listenTCP" to explicitly add authorizations for existing IP addresses
410: on startup.
411: <li>Skip <a href="https://man.openbsd.org/xenodm.1">xenodm(1)</a>
412: from adding the IPv6 link local addresses for TCP listener
413: authorizations, matching what is done by <a
414: href="https://man.openbsd.org/startx.1">startx(1)</a>.
415:
1.9 benno 416: <li>Fixed -s option for <a href="https://man.openbsd.org/cmp.1">cmp(1)</a>.
417: <li>Improve pledge in <a
418: href="https://man.openbsd.org/doas.1">doas(1)</a>, specifically added
419: pledge to the "-C" code path.
1.6 otto 420: <li>Inproved performance of <a
421: href="https://man.openbsd.org/malloc.3">malloc(3)</a>'s cache.
1.10 benno 422: <li>Made editing GPT in <a
423: href="https://man.openbsd.org/fdisk.8">fdisk(8)</a> safer by
424: defaulting offset to the beginning of the largest free space and
425: preventing the creation of overlapping partitions.
426: <li>Fixed a crash that could occur in <a
427: href="https://man.openbsd.org/sndiod.8">sndiod(8)</a> when a usb
428: device is unplugged.
429: <li>Append .html suffixes to temporary files in <a
430: href="https://man.openbsd.org/mandoc.1">mandoc(1)</a> to allow
431: recognition by browsers.
432: <li>Allow specification of a path to the <a
433: href="https://man.openbsd.org/mg.1">mg(1)</a> startup file on the
434: command line.
1.15 benno 435: <li>Added a "batch" mode to <a
436: href="https://man.openbsd.org/mg.1">mg(1)</a> via the "-b" command
437: line option which will initialize a pty, run the specified file of mg
438: commands and then exit.
439: <li>Inverted the <a href="https://man.openbsd.org/mg.1">mg(1)</a> "R"
440: indicator to mean that a "*" next to a file's name indicates that it
441: is read-only. Made the active buffer indicator more visible by
442: changing it to ">".
443:
444: <li>Fixed <a href="https://man.openbsd.org/ksh.1">ksh(1)</a>
445: redrawing of a multiline PS1 prompt in vi mode and added support for
446: ^R (redraw) in insert mode.
447: <li>Used <a href="https://man.openbsd.org/unveil.2">unveil(2)</a> to
448: restrict filesystem access in <a
449: href="https://man.openbsd.org/apmd.8">apmd(8)</a>.
450: <li>Removed the 30s minimum delay for <a
451: href="https://man.openbsd.org/xlock.1">xlock(1)</a> timeouts.
452: <li>Stopped deleting the control socket on exit in <a
453: href="https://man.openbsd.org/apmd.8">apmd(8)</a> exit, as deleting
454: the socket in process after calling <a
455: href="https://man.openbsd.org/unveil.2">unveil(2)</a> would cause a
456: unveil restriction violation,
1.1 deraadt 457: </ul>
458:
459: <li>Improved hardware support and driver bugfixes, including:
460: <ul>
1.15 benno 461: <li>Corrected accounting of zero length Transfer Descriptors in <a
462: href="https://man.openbsd.org/xhci.4">xhci(4)</a>, preventing running
463: out of free Transfer Ring Blocks.
1.3 benno 464: <li>Moved mfokclock(4) from loongson to make it available for other
465: platforms and renamed it to <a
466: href="https://man.openbsd.org/mfokrtc.4">mfokrtc(4)</a>.
467: <li>Fixed brightness setting on MacBooks.
468: <li>Added AMD Vi and Intel VTD IOMMU support. This creates separate
469: domains for each PCI device and can provide protection against invalid
470: memory access.
471: <li>Enabled brightness keys on powerbooks where the keyboard attaches
472: as <a href="https://man.openbsd.org/ukbd.4">ukbd(4)</a>.
473: <li>Set initial default display brightness on macppc via
474: of_setbrightness() to ensure <a
475: href="https://man.openbsd.org/wscons.4">wscons(4)</a> and ofw are in
476: sync.
477: <li>Added support for the PL2303HXN series chips to <a
478: href="https://man.openbsd.org/uplcom.4">uplcom(4)</a>.
479: <li>Added support for the PCA9547 I2C mux to <a
480: href="https://man.openbsd.org/pcamux.4">pcamux(4)</a>.
481: <li>Extended <a href="https://man.openbsd.org/pcamux.4">pcamux(4)</a>
482: with ACPI support.
483: <li>Added <a href="https://man.openbsd.org/acpige.4">acpige(4)</a>, a
1.41 kettenis 484: driver for ACPI generic event devices, used on various
1.54 ! jsg 485: systems to implement power button handling.
1.3 benno 486: <li>Added <a href="https://man.openbsd.org/pchgpio.4">pchgpio(4)</a>,
487: a driver for the GPIO controllers found on modern Intel PCHs.
488: <li>Added ACPI support to <a
489: href="https://man.openbsd.org/imxiic.4">imxiic(4)</a>.
490: <li>Fixed panics on the HoneyComb LX2K with <a
491: href="https://man.openbsd.org/amdgpu.4">amdgpu(4)</a>.
492: <li>Fixed very old <a
493: href="https://man.openbsd.org/umass.4">umass(4)</a> devices where the
494: INQUIRY command succeeds but with a residue equal to the requested
495: bytes.
1.5 benno 496: <li>Added Gemini Lake I2C id to <a
497: href="https://man.openbsd.org/dwiic.4">dwiic(4)</a>, making the
498: touchpad work on the Teclast F7 Plus laptop.
1.10 benno 499: <li>Introduced <a href="https://man.openbsd.org/ujoy.4">ujoy(4)</a>, a
500: restricted subset of <a
501: href="https://man.openbsd.org/uhid.4">uhid(4)</a> for game controllers
502: which uses /dev/ujoy/* device nodes.
503: <li>Set up <a href="https://man.openbsd.org/ims.4">ims(4)</a> devices
504: in X11 to behave like touchpads.
505: <li>Stopped relying on USB devices to correctly present their
506: indices, instead searching for the correct interfaces. This fixes E+
507: Corp. DAC Audio devices.
508: <li>Introduced <a
509: href="https://man.openbsd.org/uhidpp.4">uhidpp(4)</a>, a driver for
510: Logitech HID++ devices.
1.15 benno 511: <li>Separated reading of general and touchpad-specific <a
512: href="https://man.openbsd.org/wsmouse.4">wsmouse(4)</a> settings and
513: corrected identification of device type when reading touchpad
514: parameters fails.
515:
516: <li>Added support for 30-bit color modes to <a
1.41 kettenis 517: href="https://man.openbsd.org/simplefb.4">simplefb(4)</a>
518: and <a href="https://man.openbsd.org/wsfb.4">wsfb(4)</a>.
1.10 benno 519:
1.15 benno 520: <li>Made loongson kernels recognize Lynloong LM9002/9003 and LM9013 models.
521: <li>Use native display resolution 1368x768 for Lynloong all-in-one computers.
1.1 deraadt 522: </ul>
523:
524: <li>New or improved network hardware support:
525: <ul>
1.3 benno 526: <li>Fixed link state change behavior in 82598 <a
527: href="https://man.openbsd.org/ix.4">ix(4)</a> chips.
528: <li>Fixed issues with network stopping after the first down/up cycle
529: in <a href="https://man.openbsd.org/mvpp.4">mvpp(4)</a> Marvel Armada
530: Ethernet device.
531: <li>Added SFP+ support to ofw, including support for direct attach cables.
532: <li>Added 10G media support to <a
533: href="https://man.openbsd.org/mvpp.4">mvpp(4)</a>.
534: <li>Added support for 1000base-x and 2500base-x connections to <a
535: href="https://man.openbsd.org/mvneta.4">mvneta(4)</a>.
536: <li>Added <a href="https://man.openbsd.org/mvsw.4">mvsw(4)</a>, a
537: driver for Marvel "SOHO" switches.
1.5 benno 538: <li>Enabled auto-negotiation on the SerDes links, allowing
539: in-band-status to work between <a
540: href="https://man.openbsd.org/mvpp.4">mvpp(4)</a> and <a
541: href="https://man.openbsd.org/mvsw.4">mvsw(4)</a> on the ClearFog GT
542: 8K.
543: <li>Added support for the i.MX8MP PCIe clocks, USB clocks and second
544: ethernet.
545: <li>Added Wake on LAN support to <a
546: href="https://man.openbsd.org/rge.4">rge(4)</a>.
547: <li>Enabled IPv4 and TCP/UDP checksum offload on transmission in <a
548: href="https://man.openbsd.org/ogx.4">ogx(4)</a>.
1.10 benno 549: <li>Raised the maximum number of queues/interrupts from 1 to 16 on <a
550: href="https://man.openbsd.org/mcx.4">mcx(4)</a> devices.
551: <li>Added support for the Netgear ProSecure UTM25 to octeon.
1.15 benno 552: <li>Added vid/pid table to <a
553: href="https://man.openbsd.org/umb.4">umb(4)</a> allowing matching to
554: alternate configurations.
1.1 deraadt 555: </ul>
556:
557: <li>Added or improved wireless network drivers:
558: <ul>
1.36 stsp 559: <li>Fixed the <a href="https://man.openbsd.org/athn.4">athn(4)</a> and
560: <a href="https://man.openbsd.org/urtwn.4">urtwn(4)</a> drivers
561: in client mode against access points which use WPA1/TKIP as
562: the group cipher.
1.3 benno 563: <li>Added multicast support to <a
564: href="https://man.openbsd.org/bwfm.4">bwfm(4)</a> to allow IPv6.
565: <li>Fixed <a href="https://man.openbsd.org/urtwn.4">urtwn(4)</a>
566: repeated DEAUTH and loss/restoration of link.
1.5 benno 567: <li>Introduced a delay to work around an issue in <a
568: href="https://man.openbsd.org/bwfm.4">bwfm(4)</a> on the BCM43602 that
569: was triggering "unexpected pairwise key update" errors.
1.9 benno 570: <li>Enabled <a href="https://man.openbsd.org/athn.4">athn(4)</a> for arm64.
1.36 stsp 571: <li>Implemented a new 802.11n Tx rate adaptation algorithm ("RA") for
1.42 stsp 572: <a href="https://man.openbsd.org/iwm.4">iwm(4)</a>,
573: <a href="https://man.openbsd.org/iwn.4">iwn(4)</a>, and
574: <a href="https://man.openbsd.org/athn.4">athn(4)</a>.
1.36 stsp 575: <li>Fixed association problems with the <a
1.42 stsp 576: href="https://man.openbsd.org/ipw.4">ipw(4)</a> and <a
577: href="https://man.openbsd.org/iwi.4">iwi(4)</a> drivers.
1.15 benno 578: <li>Made <a href="https://man.openbsd.org/iwx.4">iwx(4)</a> attach to
1.48 stsp 579: AX201 devices with PCI IDs 0x34f0 and 0x06f0. Needs <a
1.15 benno 580: href="https://man.openbsd.org/fw_update.1">fw_update(1)</a>.
581: <li>Fixed a problem where <a
582: href="https://man.openbsd.org/iwn.4">iwn(4)</a> firmware would
583: generate bogus block ack requests and stall traffic.
1.42 stsp 584: <li>Fixed automatic channel selection in the <a
585: href="https://man.openbsd.org/athn.4">athn(4)</a> driver
586: when running in hostap or monitor mode.
1.1 deraadt 587: </ul>
588:
589: <li>IEEE 802.11 wireless stack improvements and bugfixes:
590: <ul>
1.36 stsp 591: <li>Fixed length calculations in <a
1.5 benno 592: href="https://man.openbsd.org/iwm.4">iwm(4)</a> and <a
593: href="https://man.openbsd.org/iwx.4">iwx(4)</a> when there are
594: multiple MPDUs in one packet.
1.36 stsp 595: <li>Fixed 802.11n interoperability with access points that offer
596: management frame protection.
597: <li>Flush the A-MPDU reorder buffer after gap timeout to prevent
598: frames from remaining in the buffer until the next frame
599: is received.
600: <li>Avoid spurious "input packet decapsulations failed" errors in
1.5 benno 601: <a href="https://man.openbsd.org/netstat.1">netstat(1)</a> -W with
602: A-MSDU enabled.
1.42 stsp 603: <li>Fixed automatic selection of the 11a/b/g/n/ac operating mode when
1.53 stsp 604: the interface is running as an access point.
1.52 krw 605: <li>Ensured crypto keys are installed before the link is brought up.
1.1 deraadt 606: </ul>
607:
608: <li>Generic network stack improvements and bugfixes:
609: <ul>
1.10 benno 610: <li>Removed the maxburst feature from tcp_output().
1.51 bluhm 611: Sending out TCP segments was limited to 4 packets per burst.
1.54 ! jsg 612: This did not scale well on high bandwidth, high latency links.
1.51 bluhm 613: Especially when the receiving side delays ACK packets
614: aggressively, the maxburst limitation could seriously reduce
615: TCP throughput per connection.
1.10 benno 616: <li>Added a MONITOR feature to interfaces. Packets received on these
617: interfaces do not enter the network stack for further processing. This
618: can be used to watch traffic, for example with <a
619: href="https://man.openbsd.org/bpf.4">bpf(4)</a> without risk of the packets
620: interfering with the system.
621:
622: <li>Added etherbridge, the internals of a reusable learning bridge
623: interface providing common code reusable for other drivers needing a
624: mac learning bridge.
625: <li>Introduced <a href="https://man.openbsd.org/veb.4">veb(4)</a>, a
626: Virtual Ethernet Bridge driver.
1.3 benno 627:
1.15 benno 628: <li>Added the ability to force the selection of source IP address for
629: programs that do not specify a source IP, overriding the default
630: source IP selection algorithm. This is configurable via <a
631: href="https://man.openbsd.org/route.8">route(8)</a>
1.31 tb 632: <code>sourceaddr</code> command.
1.15 benno 633:
1.37 job 634: <li>Bring interfaces up when autoconfiguration for inet or inet6 is
1.15 benno 635: enabled (AUTOCONF4 or AUTOCONF6 flags).
636: <li>Adjust terminology in <a
637: href="https://man.openbsd.org/ifconfig.8">ifconfig(8)</a> to refer to
638: "temporary address extensions" rather than the former "privacy
639: extensions," including the addition of an AUTOCONF6TEMP flag (to
640: replace the negative flag "INET6_NOPRIVACY"). The autoconfprivacy
641: option if <a href="https://man.openbsd.org/ifconfig.8">ifconfig(8)</a>
642: has been deprecated.
643: <li>Made it possible to disable the "autoconf" flag but keep
644: "temporary" enabled in <a
645: href="https://man.openbsd.org/ifconfig.8">ifconfig(8)</a>.
646: <li>For IPv6 addresses, added tracking of address proposal creation
647: times to be able to establish total lifetime. This information is used
648: to renew pltime/vltime of privacy addresse per RFC 4941.
1.3 benno 649:
1.15 benno 650: <li>Prevented kernel reuse of mbuf memory when generating the ICMP6
651: response to an IPv6 packet.
652: <li>Use the toeplitz hash algorithm to a flowid for tcp packets,
653: which in turn is used to choose the tx ring on network cards with
654: multiple rings.
655: <li>Fixed <a href="https://man.openbsd.org/wg.4">wg(4)</a> on macppc
656: by keeping track of allowed ips pointer correctly.
657: <li>Fixed <a href="https://man.openbsd.org/wg.4">wg(4)</a> ioctl to
658: handle multiple wgpeers.
659: <li>Fixed a race between tx/rx handshakes in <a
660: href="https://man.openbsd.org/wg.4">wg(4)</a>.
661: <li>Prevented a potential hang when trying to remove a <a
662: href="https://man.openbsd.org/tun.4">tun(4)</a> interface.
663: <li>Used the correct rdomain when adding and deleting routes with <a
664: href="https://man.openbsd.org/mpip.4">mpip(4)</a> and <a
665: href="https://man.openbsd.org/mpw.4">mpw(4)</a>.
666: <li>Made <a href="https://man.openbsd.org/ifconfig.8">ifconfig(8)</a>
667: "-mplslabel" work with <a
668: href="https://man.openbsd.org/mpw.4">mpw(4)</a>.
1.1 deraadt 669: </ul>
670:
1.15 benno 671: <li>Installer and upgrade improvements:
1.1 deraadt 672: <ul>
1.5 benno 673: <li>Prevented a race in <a
674: href="https://man.openbsd.org/dhclient.8">dhclient(8)</a> privsep
675: which could cause autoinstall to fail by calling <a
676: href="https://man.openbsd.org/ftp.1">ftp(1)</a> without a local
677: address.
678: <li>Fixed hangs on amd64 bsd.rd due to misreported core clock
679: frequency on newer Intel Comet Lake models.
1.15 benno 680: <li>Began distributing the gzip'd version of bsd.rd on all platforms
681: with boot methods supporting it.
682: <li>Fixed a problem which prevented use of <a
683: href="https://man.openbsd.org/sysupgrade.8">sysupgrade(8)</a> when an
684: interface failed to come up and <a
685: href="https://man.openbsd.org/dhclient.8">dhclient(8)</a> didn't
686: notice link-timeout expiration.
687: <li>Prevented <a
688: href="https://man.openbsd.org/disklabel.8">disklabel(8)</a> from
689: adjusting the swap 'b' partition size if physmem is zero to keep the
690: auto-allocate code from putting a filesystem on that partition.
691: <li>Emulate "[inet] autoconf" <a
692: href="https://man.openbsd.org/hostname.if.5">hostname.if(5)</a> lines
693: with "dhcp" so users testing <a
694: href="https://man.openbsd.org/dhcpleased.8">dhcpleased(8)</a> will
695: still be able to upgrade manually while the installer uses only <a
696: href="https://man.openbsd.org/dhclient.8">dhclient(8)</a>.
1.52 krw 697: <li>Restored <a
698: href="https://man.openbsd.org/dhclient.conf.5">dhclient.conf(5)</a>
699: to the group of network configuration files used during upgrades.
1.5 benno 700:
1.1 deraadt 701: </ul>
702:
703: <li>Security improvements:
704: <ul>
1.25 benno 705: <li>Added notices to syslog whenever the "%n" format string component
706: of <a href="https://man.openbsd.org/printf.3">printf(3)</a> is used.
707: <li>Removed workaround permitting Go executables to do syscalls
708: directly, forcing them to use shared libc like all other dynamic
709: binaries.
1.1 deraadt 710: </ul>
711:
712: <li>Routing daemons and other userland network improvements:
713: <ul>
1.15 benno 714: <li>The <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> daemon saw the following changes:
715: <ul>
1.3 benno 716: <li>Fixed a memory leak when parsing <a
717: href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> roa-set lists.
718: <li>Stopped allowing configuration of the same neighbor multiple
719: times in <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>.
1.5 benno 720: <li>When exporting prefixes from multiple sessions in <a
721: href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> into the same <a
722: href="https://man.openbsd.org/pf.4">pf(4)</a> table, now prefixes are
723: only removed from the table when withdrawn from all sessions that
724: announced them.
725: <li>Introduced a send hold timer in <a
726: href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> to detect stalls on
727: the sending side of a TCP connection, acting as a last resort to
728: detect faulty peers.
729: <li>Added <a href="https://man.openbsd.org/bgpctl.8">bgpctl(8)</a>
730: "show sets" to display information about the roa-set, as-sets and
731: prefix-sets loaded into <a
732: href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>.
1.10 benno 733: <li>Introduced the <a
734: href="https://man.openbsd.org/bgpd.conf.5">bgpd.conf(5)</a> per
735: neighbor and global config option "reject as-set yes/no" to allow
736: rejection of received UPDATES with AS_SET segments. These rejected
737: prefixes can be viewed with <a
738: href="https://man.openbsd.org/bgpctl.8">bgpctl(8)</a> "show rib in
739: error".
740: <li>Properly implemented "rde med compare strict" in <a
741: href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> and ensured that the
742: order of prefixes is always correct.
743: <li>Added RTR support to <a href="https://man.openbsd.org/bgpd.8">OpenBGPD</a>.
744: <li>Added <a href="https://man.openbsd.org/bgpctl.8">bgpctl(8)</a>
745: "show rtr" to display basic information about RTR sessions.
746: <li>Introduced <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>
747: <code>rde evaluate all</code> to work around path hiding in IXP
748: route-server environments.
1.15 benno 749: </ul>
1.10 benno 750:
1.15 benno 751: <li>The <a
752: href="https://man.openbsd.org/ospfd.8">ospfd(8)</a> and <a
753: href="https://man.openbsd.org/ospf6d.8">ospf6d(8)</a> routing
754: daemons saw various internal refactoring to keep the code similar to
755: changes in other routing daemons and improve maintainability.<br>
756: Additionally, support was added in <a
757: href="https://man.openbsd.org/ospfd.8">ospfd(8)</a> for interfaces
758: that share the same IP.
1.10 benno 759:
1.15 benno 760: <li>The <a href="https://man.openbsd.org/pf.4">pf(4)</a> packet filter and it's userland utility:
761: <ul>
762: <li>Relaxed checks in <a
763: href="https://man.openbsd.org/pfctl.8">pfctl(8)</a> and <a
764: href="https://man.openbsd.org/pf.4">pf(4)</a> to accept any valid
765: routing domain, even if it does not yet exist.
766: <li>Made <a href="https://man.openbsd.org/pfctl.8">pfctl(8)</a>
767: detect and reject bogus ranges before loading the ruleset to prevent a
768: panic.
769: <li>Changed route-to in <a
770: href="https://man.openbsd.org/pf.conf.5">pf.conf(5)</a> to send
771: packets to IPs instead of interfaces.
772: <li>Changed pf_route so <a
773: href="https://man.openbsd.org/pf.4">pf(4)</a> only runs when packets
774: enter and leave the stack. Running the same packet through pf multiple
775: times creates confusion for the state table. By default, pf states are
776: floating, meaning that packets are matched to states regardless of
777: which interface they're going over. This diff avoids multiple pf(4)
778: traversals of one packet causing confusion in the state table.
779: <li>Prevented the kernel from being stuck in an endless recursion
780: during TCP path MTU discovery when <a
781: href="https://man.openbsd.org/pf.4">pf(4)</a> changes the routing
782: table when sending packets.
783: <li>When cutting off the head of an overlapping fragment during <a
784: href="https://man.openbsd.org/pf.4">pf(4)</a> reassembly, reinserted
785: the fragment into the lookup table with the correct index.
1.52 krw 786:
787: <li>Improved
788: <href="https://man.openbsd.org/tftpd.8">tftpd(8)</a> logging to report the reasons
789: a transfer failed.
790:
1.15 benno 791: </ul>
1.5 benno 792:
1.15 benno 793: <li>IPSEC support in the kernel and the <a href="https://man.openbsd.org/iked.8">iked(8)</a> userland daemon:
794: <ul>
1.3 benno 795: <li>Added support to request IP addresses as IKEv2 initiator to <a
796: href="https://man.openbsd.org/iked.8">iked(8)</a>. If 'request addr
797: 0.0.0.0' is configured, any address will be accepted.
798: <li>Make <a href="https://man.openbsd.org/iked.8">iked(8)</a> accept
799: ANY dynamic address with 'request addr 0.0.0.0'.
800: <li>Added 'dynamic' keyword to <a
801: href="https://man.openbsd.org/iked.conf.5">iked.conf(5)</a> to allow
802: configuration of flows to dynamically assigned addresses.
803: <li>Added the 'any' keyword to <a
804: href="https://man.openbsd.org/iked.conf.5">iked.conf(5)</a> for
805: requests to allow "request address any".
806: <li>Enabled <a href="https://man.openbsd.org/iked.8">iked(8)</a>
807: support for ASN1_DN ipsec identifiers.
808: <li>Implemented <a href="https://man.openbsd.org/iked.8">iked(8)</a>
809: "from dynamic," installing flows where "dynamic" is replaced by the
810: received dynamic IP address.
811: <li>Made sure not to replace 0.0.0.0 with a dynamic address in <a
812: href="https://man.openbsd.org/iked.8">iked(8)</a> if it is a network
813: address.
814: <li>Added <a href="https://man.openbsd.org/iked.8">iked(8)</a> -s
815: socket option to specify a control socket.
816: <li>Used a counter instead of random IV for AES-GCM in <a
817: href="https://man.openbsd.org/iked.8">iked(8)</a>, eliminating the
818: risk of random collisions.
819: <li>Added <a href="https://man.openbsd.org/iked.8">iked(8)</a>
820: support for multiple address pools.
821: <li>Added the <a href="https://man.openbsd.org/iked.8">iked(8)</a>
822: "set stickyaddress" option, which attempts to assign the same "config
823: address" when an IKESA is negotiated with the DSTID of an existing
824: IKESA.
825: <li>Ensured rekeying of every child SA in <a
826: href="https://man.openbsd.org/iked.8">iked(8)</a>.
1.5 benno 827: <li>Added <a href="https://man.openbsd.org/iked.8">iked(8)</a> support
828: for RSASSA-PSS signature verification (RFC 7427).
829: <li>Corrected the first packet of an <a
830: href="https://man.openbsd.org/ipsec.4">ipsec(4)</a> SA to have
831: sequence number 1.
832: <li>Accepted reject and blackhole routes for IPsec PMTU discovery.
833: <li>Prevented leaking of ipsec_hosts in <a
834: href="https://man.openbsd.org/iked.8">iked(8)</a> when building
835: hosts_list.
836: <li>Prevented initiation of new additional SAs for each policy upon
837: every <a href="https://man.openbsd.org/ikectl.8">ikectl(8)</a> config
838: reload.
839: <li>Fixed "any" and "dynamic" keywords for flows in <a
840: href="https://man.openbsd.org/iked.8">iked(8)</a> and added proper
841: IPv6 support.
1.9 benno 842: <li>Created a path MTU host route for <a
843: href="https://man.openbsd.org/ipsec.4">IPsec(4)</a> over IPv6.
1.10 benno 844: <li>Added support for INVALID_KE_PAYLOAD in <a
845: href="https://man.openbsd.org/iked.8">iked(8)</a> CREATE_CHILD_SA
846: exchange.
847: <li>Added support for RSA-PSS PKCS1 signatures to <a
848: href="https://man.openbsd.org/iked.8">iked(8)</a>.
849: <li>Fixed path MTU discovery for ESP tunnels in IPv6.
850: <li>Upgraded to OpenSSL 1.1 compatible crypto API in <a
851: href="https://man.openbsd.org/iked.8">iked(8)</a>.
852: <li>Added an optional "group none" transform for child SAs in <a
853: href="https://man.openbsd.org/iked.8">iked(8)</a> to ensure the
854: ability to negotiate optional PFS.
855: <li>Added <a href="https://man.openbsd.org/iked.8">iked(8)</a>
856: dynamic address configuration for roadwarrior clients, with a new
857: "iface" config option which can be used to specify an interface for
858: the virtual addresses received from the peer.
1.15 benno 859: <li>Fixed an <a href="https://man.openbsd.org/iked.8">iked(8)</a>
860: interop problem with strongswan if make-before-break is enabled.
861: </ul>
1.3 benno 862:
1.16 tb 863: <li>The <a href="https://man.openbsd.org/httpd.8">httpd(8)</a> webserver saw numerous improvements:
1.15 benno 864: <ul>
865: <li>Prevented a crash due to
866: <a href="https://man.openbsd.org/httpd.8">httpd(8)</a> listening on port
867: 443 with missing TLS certificates.
868: <li>Created a new "location (found|notfound)" option for
869: <a href="https://man.openbsd.org/httpd.conf.5">httpd.conf(5)</a> to allow
870: testing for resource path existence.
871: <li>Fixed detection of duplicate locations in <a
872: href="https://man.openbsd.org/httpd.8">httpd(8)</a>.
873: <li>Fixed leak of access and error log filenames on config reload in
874: <a href="https://man.openbsd.org/httpd.8">httpd(8)</a>.
875: <li>Avoid leaking the log message in
876: <a href="https://man.openbsd.org/httpd.8">httpd(8)</a>'s
877: server_sendlog.
878: <li>Incorrect order of
879: <a href="https://man.openbsd.org/close.2">close(2)</a> and
880: <a href="https://man.openbsd.org/tls_close.3">tls_close(3)</a>
1.16 tb 881: together with a bug in libssl led to leaking memory in
1.15 benno 882: <a href="https://man.openbsd.org/httpd.8">httpd(8)</a>
883: for each TLS connection.
884: <li>Fixed the <a href="https://man.openbsd.org/httpd.8">httpd(8)</a>
885: example configuration not to generate errors when running without TLS
886: keys already in place.
1.30 tb 887: <li>Optimized disk reads of
1.15 benno 888: <a href="https://man.openbsd.org/httpd.8">httpd(8)</a>
889: by using st_blocksize as high water mark instead of
890: the socket buffer size.
1.30 tb 891: <li>Do not compare TLS config params for non-TLS servers.
892: This allows using <code>listen on * port 80</code> and
893: <code>listen on * port 443</code> in the same server block in
894: <a href="https://man.openbsd.org/httpd.conf.5">httpd.conf(5)</a>.
1.15 benno 895: </ul>
1.3 benno 896:
1.24 benno 897: <li><a
898: href="https://man.openbsd.org/rpki-client.8">rpki-client(8)</a>
899: received the following new features and bugfixes:
1.15 benno 900: <ul>
1.47 benno 901: <li>Added RRDP (The RPKI Repository Delta Protocol, RFC 8182) support
902: as a 'technology preview'. To use it, the "-r" flag needs to be used.
1.43 benno 903: <li>Support the use of more than one URI in the TAL file,
1.15 benno 904: sorting with a preference for https.
1.43 benno 905: <li>Validation of ghostbuster records (RFC 6493).
906: <li>Fixed checks of the manifest validity interval.
907: <li>The rsync connection is now killed when the rsync server stalls.
908: <li>Limited the URL embedded in .cer files to
1.15 benno 909: alphanumeric characters and punctuation.
1.43 benno 910: <li>Added a "-V" option to show version.
1.15 benno 911: <li>Included the default cert.pem file path in tls_load_file error
1.43 benno 912: messages.
1.15 benno 913: </ul>
1.3 benno 914:
1.24 benno 915: <li>The <a href="https://man.openbsd.org/dig.1">dig(1)</a> DNS
916: utility received the following updates:
1.15 benno 917: <ul>
1.5 benno 918: <li>Implemented RFC 8914 Extended DNS Errors for <a
919: href="https://man.openbsd.org/dig.1">dig(1)</a>.
920: <li>Fixed <a href="https://man.openbsd.org/dig.1">dig(1)</a> EDNS
921: Client Subnet option (+subnet=).
922: <li>Fixed IPv6 link-local address handling for nameservers to talk to
923: and address to bind to in <a
924: href="https://man.openbsd.org/dig.1">dig(1)</a>.
1.15 benno 925: <li>Implemented ZONEMD (RFC 8976) in <a
926: href="https://man.openbsd.org/dig.1">dig(1)</a> to convey a message
927: digest of the content of a DNS zone.
928: </ul>
1.5 benno 929:
1.15 benno 930: <li>Changes to <a href="https://man.openbsd.org/dhclient.8">dhclient(8)</a>:
931: <ul>
1.5 benno 932: <li>Fixed incorrect behavior when using <a
933: href="https://man.openbsd.org/dhclient.conf.5">dhclient.conf(5)</a> to
934: change the lease renew/rebind/expiry timing.
935: <li>Allowed the provision of <a
936: href="https://man.openbsd.org/dhclient.8">dhclient(8)</a> options on
937: "dhcp" lines in <a
938: href="https://man.openbsd.org/hostname.if.5">hostname.if(5)</a> files.
1.52 krw 939: <li>Converted all timers from
940: <a
941: href="https://man.openbsd.org/time.3">time(3)</a> values
942: to <a
943: href="https://man.openbsd.org/clock_gettime.2">clock_gettime(2)</a>
944: CLOCK_MONOTONIC values.
945: <li>Removed -L command line option.
946: <li>Improved debug output.
947: <li>Improved re-acquisition of a previous address by immediately
948: accepting any OFFER for the address, rather than waiting for
949: 'select-timeout' to expire.
1.54 ! jsg 950: <li>Exit immediately if the -c option specifies a non-existent file.
1.52 krw 951: <li>Exit immediately if the -i option contains invalid information.
952: </ul>
1.5 benno 953:
1.15 benno 954: <li>Two new daemons, <a
955: href="https://man.openbsd.org/dhcpleased.8">dhcpleased(8)</a> and <a
956: href="https://man.openbsd.org/resolvd.8">resolvd(8)</a> were added.
957: These work alongside with <a
958: href="https://man.openbsd.org/slaacd.8">slaacd(8)</a> and <a
959: href="https://man.openbsd.org/unwind.8">unwind(8)</a> to provide a
1.28 fcambus 960: coherent and simple automatic configuration of network interfaces and
1.15 benno 961: DNS resolution.<br>
962: The two daemons are not enabled by default for now, but can be tested
1.28 fcambus 963: by enabling them with <a href="https://man.openbsd.org/rcctl.8">rcctl(8)</a>.
1.15 benno 964: <ul>
965: <li><a href="https://man.openbsd.org/dhcpleased.8">dhcpleased(8)</a>
966: implements the DHCP protocol to acquire IPv4 address leases from
967: servers.
968: <li><a href="https://man.openbsd.org/resolvd.8">resolvd(8)</a>
969: manages the content of <a
970: href="https://man.openbsd.org/resolv.conf.5">resolv.conf(5)</a> based
1.49 deraadt 971: on nameserver proposals from
972: <a href="https://man.openbsd.org/dhcpleased.8">dhcpleased(8)</a>,
973: <a href="https://man.openbsd.org/slaacd.8">slaacd(8)</a>, and
974: drivers like <a href="https://man.openbsd.org/umb.4">umb(4)</a>.
1.15 benno 975: </ul>
1.44 martijn 976:
977: <li>Changes to snmp related tools:
978: <ul>
979: <li><a href="https://man.openbsd.org/agentx.3">libagentx(3)</a> moved its
980: API prefix from subagentx_ to agentx_.
981: <li><a href="https://man.openbsd.org/agentx.3">agentx_varbind_integer(3)</a>
982: now accepts an int32_t as per SMI/RFC 2578.
983: <li><a href="https://man.openbsd.org/agentx.3">agentx_varbind_unsigned32(3)</a>
984: has been added as an alias for
985: <a href="https://man.openbsd.org/agentx.3">agentx_varbind_gauge32(3)</a>.
986: <li><a href="https://man.openbsd.org/snmpd.conf.5">snmpd.conf(5)</a> no
987: longer accepts the old <code>listen on address [tcp|udp]</code>
988: syntax. Only the new <code>listen on [tcp|udp] address</code>
989: sytanx is now supported.
990: <li><a href="https://man.openbsd.org/snmpd.8">snmpd(8)</a> now fully
991: implements RFC3584 Trapv1 to Trapv2 conversion for
992: "trap handle".
993: <li>sysUpTime and snmpTrapOID now respect
994: <a href="https://man.openbsd.org/snmpd.8">snmpd(8)</a>' -N flag,
995: similar to the other values send by <code>trap handle</code>.
996: <li><a href="https://man.openbsd.org/snmpd.conf.5">snmpd.conf(5)</a> now
997: accepts the <code>read</code>, <code>write</code>, and
998: <code>notify</code> keywords. Allowing for request type
999: filtering per <code>listen on</code> statement and custom
1000: <code>trap handle </code> ports.
1001: <li><a href="https://man.openbsd.org/snmp.1">snmp(1)</a> now has initial
1002: support for SMI enums. For now only TruthValue is implemented
1003: on ifPromiscuousMode and ifConnectorPresent.
1004: <li><a href="https://man.openbsd.org/snmp.1">snmp(1)</a> now interprets
1005: the "u" data type as unsigned integer.
1006: </ul>
1007:
1.15 benno 1008: <li>Other userland network changes:
1009: <ul>
1010: <li>Fixed <a href="https://man.openbsd.org/ldapd.8">ldapd(8)</a> cert
1011: and key path inference for absolute paths.
1012: <li>Fixed incorrect cast in a
1013: <a href="https://man.openbsd.org/vsnprintf(3)">vsnprintf(3)</a>
1014: error check
1015: in <a href="https://man.openbsd.org/ldapd.8">ldapd(8)</a>.
1016: <li>Applied <a href="https://man.openbsd.org/unveil.2">unveil(2)</a>
1017: to <a href="https://man.openbsd.org/ldapd.8">ldapd(8)</a>.
1.5 benno 1018:
1.3 benno 1019: <li>Changed <a href="https://man.openbsd.org/ping.8">ping(8)</a> to
1020: drain the raw socket of packets received before we were fully setup to
1021: avoid reporting ICMP responses intended for other instances of ping(8)
1022: running in parallel.
1.10 benno 1023: <li>Added <a href="https://man.openbsd.org/ping.8">ping(8)</a> -g
1024: option to provide a visual display of packets received and lost.
1.3 benno 1025:
1026: <li>Changed <a href="https://man.openbsd.org/slaacd.8">slaacd(8)</a>
1027: Duplicate Address Detection (DAD) to only generate a new address if we
1028: are using Semantically Opaque Interface Identifiers.
1029: <li>Handled an autoconf interface changing its rdomain in <a
1030: href="https://man.openbsd.org/slaacd.8">slaacd(8)</a>.
1.15 benno 1031: <li>Completed <a
1032: href="https://man.openbsd.org/slaacd.8">slaacd(8)</a> implementation
1033: of RFC 8981 temporary address extensions.
1034:
1.14 tb 1035: <li>Do not leak the domains listed in
1036: <a href="https://man.openbsd.org/unwind.8">unwind(8)</a>'s
1037: blocklist file on each config reload.
1038: <li>Do not leak duplicate domain nodes when loading the
1039: <a href="https://man.openbsd.org/unwind.8">unwind(8)</a>
1040: config.
1.3 benno 1041: <li>Fixed rare crashes of <a
1042: href="https://man.openbsd.org/unwind.8">unwind(8)</a> when DNS answers
1043: are larger than the maximum imsg size.
1.9 benno 1044: <li>Implemented <a
1045: href="https://man.openbsd.org/unwind.8">unwind(8)</a> listening on
1046: TCP.
1.10 benno 1047: <li>Implemented DNS64 synthesis in <a
1048: href="https://man.openbsd.org/unwind.8">unwind(8)</a>.
1049: <li>Disabled logging to <a
1050: href="https://man.openbsd.org/syslog.3">syslog(3)</a> for libunbound
1051: with <a href="https://man.openbsd.org/unwind.8">unwind(8)</a>. Does
1052: not prevent logging to stderr with "unwind -d".
1053:
1.3 benno 1054: <li>Added a simple --timeout implementation to <a
1055: href="https://man.openbsd.org/openrsync.1">openrsync(1)</a>.
1.15 benno 1056: <li>Added the <a href="https://man.openbsd.org/rsync.1">rsync(1)</a>
1057: option --no-motd to suppress the information output by the client at
1058: the start of a daemon transfer.
1.3 benno 1059: <li>Added support for the use of !command to <a
1060: href="https://man.openbsd.org/mygate.5">mygate(5)</a>, so that
1061: netstart has a late opportunity to perform network configuration.
1.5 benno 1062: <li>Make <a href="https://man.openbsd.org/rad.8">rad(8)</a> to handle
1063: multiple rdomains in a single daemon (instead of running it in
1064: multiple rdomains).
1065: <li>Added a specific headline to <a
1066: href="https://man.openbsd.org/netstat.1">netstat(1)</a> for TCP state
1067: and IP protocol.
1.9 benno 1068: <li>Handle permanent redirects (RFC 7538) in <a
1.5 benno 1069: href="https://man.openbsd.org/ftp.1">ftp(1)</a> fetch.
1.10 benno 1070: <li>Introduced <a href="https://man.openbsd.org/ftp.1">ftp(1)</a>
1071: support for sending the If-Modified-Since header while fetching over
1072: http or https. Switched to using the timestamps from the remote
1073: server's Last-Modified header if available when saving local files and
1074: introduced the ftp "-u" flag to disable this behavior.
1.15 benno 1075: <li>Made <a href="https://man.openbsd.org/ftp.1">ftp(1)</a> set
1076: timestamps only on files.
1.10 benno 1077:
1.9 benno 1078: <li>Added requests for a new certificate without requiring -F when <a
1079: href="https://man.openbsd.org/acme-client.1">acme-client(1)</a>
1080: detects an added or removed SAN in the config file not reflected in
1081: the existing certificate on disk.
1082: <li>Print rewritten addresses in <a
1083: href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a> logged with <a
1084: href="https://man.openbsd.org/pflog.4">pflog(4)</a> for rdr-to, nat-to
1085: and af-to rules.
1.10 benno 1086: <li>When calling <a
1087: href="https://man.openbsd.org/getaddrinfo.3">getaddrinfo(3)</a> with
1088: AI_ADDRCONFIG, consider the routing domain when checking for available
1089: address families. This ensures that name resolution is only performed
1090: for the address families available in the rdomain.
1091: <li>Implemented the <a href="https://man.openbsd.org/nc.1">nc(1)</a>
1092: -D socket debug option in <a
1093: href="https://man.openbsd.org/tcpbench.1">tcpbench(1)</a>, allowing
1094: analysis of TCP connections.
1.14 tb 1095: <li>Avoid leaking the help text in
1096: <a href="https://man.openbsd.org/tcpbench.1">systat(8)</a>.
1097: <li>Simplify argument parsing of
1.31 tb 1098: <code><a href="https://man.openbsd.org/vmctl.8">vmctl(8)</a> stop</code>
1.14 tb 1099: thereby avoiding a
1100: <a href="https://man.openbsd.org/printf.3">printf(3)</a> "%s" NULL,
1101: a use of uninitialized and a dead else branch.
1.15 benno 1102: <li>Increased the maximum length for CHAP challenges to 96 octets to
1103: ensure <a href="https://man.openbsd.org/npppd.8">npppd(8)</a> can
1104: handle longer challenges, such as those sent by Juniper.
1105: </ul>
1.1 deraadt 1106: </ul>
1107:
1108: <li><a href="https://man.openbsd.org/tmux">tmux(1)</a> improvements and bug fixes:
1109: <ul>
1.5 benno 1110: <li>Made <a href="https://man.openbsd.org/tmux.1">tmux(1)</a> synchronize-panes a pane option and added set-option -U flag to unset an option on all panes.
1.15 benno 1111: <li>Allowed use of ## and # in <a href="https://man.openbsd.org/tmux.1">tmux(1)</a> styles and added a "w" format modifier for width.
1112: <li>Added a -C flag to <a href="https://man.openbsd.org/tmux.1">tmux(1)</a> run-shell to use a tmux command rather than a shell command.
1113: <li>Added a <a href="https://man.openbsd.org/tmux.1">tmux(1)</a> -N flag to never start the server even if the command would normally do so.
1114: <li>Added the new <a href="https://man.openbsd.org/tmux.1">tmux(1)</a> -S flag to new-window to select the existing window if one with the given name already exists, rather than failing.
1115: <li>Added support for X11 color names and other variations for OSC 10/11 and added OSC 110 and 111 to <a href="https://man.openbsd.org/tmux.1">tmux(1)</a>.
1116: <li>Removed <a href="https://man.openbsd.org/tmux.1">tmux(1)</a> support for popups where the content is provided directly to tmux.
1117: <li>Added a <a href="https://man.openbsd.org/tmux.1">tmux(1)</a> "absolute-centre" alignment to use the center of the total space instead of the available space.
1118: <li>Added <a href="https://man.openbsd.org/tmux.1">tmux(1)</a> split-window -Z to start the pane zoomed.
1119: <li>Added client-detached notification in <a href="https://man.openbsd.org/tmux.1">tmux(1)</a> control mode.
1120: <li>Changed <a href="https://man.openbsd.org/tmux.1">tmux(1)</a> search-again with vi keys to work like <a href="https://man.openbsd.org/vi.1">vi(1)</a>.
1.1 deraadt 1121: </ul>
1122:
1123: <li>OpenSMTPD 6.9.0
1124: <ul>
1.5 benno 1125: <li>Introduced <a href="https://man.openbsd.org/smtp.1">smtp(1)</a>
1126: -a to perform authentication before sending a message.
1127: <li>Fixed a memory leak in <a href="https://man.openbsd.org/smtpd.8">smtpd(8)</a> resolver.
1128: <li>Prevented a crash due to premature release of resources by the <a
1129: href="https://man.openbsd.org/smtpd.8">smtpd(8)</a> filter state
1130: machine.
1.12 eric 1131: <li>Switch to libtls internally.
1132: <li>Change the way SNI works in <a href="https://man.openbsd.org/smtpd.conf.5#pki~2">smtpd.conf(5)</a>.
1133: TLS listeners may be configured with multiple certificates,
1134: the matching is based on the names included in these certificates.
1135: <li>Allow to specify tls protocols and ciphers per listener and relay action.
1.15 benno 1136: <li>Allowed <a
1137: href="https://man.openbsd.org/smtpd.conf.5">smtpd.conf(5)</a>
1138: specification of tls protocols and ciphers on relay actions.
1.5 benno 1139:
1.1 deraadt 1140: </ul>
1141:
1.39 tb 1142: <li>LibreSSL 3.3.3
1.1 deraadt 1143: <ul>
1144: <li>New Features
1145: <ul>
1.38 tb 1146: <li>Support for DTLSv1.2.
1147: <li>Continued rewrite of the record layer for the legacy stack.
1148: <li>Numerous bugs and interoperability issues were fixed in the new verifier.
1.39 tb 1149: A few bugs and incompatibilities remain, so this release uses the old
1150: verifier by default.
1.38 tb 1151: <li>The OpenSSL 1.1 TLSv1.3 API is not yet available.
1152: </ul>
1.15 benno 1153:
1.38 tb 1154: <li>Portable Improvements
1155: <ul>
1156: <li>Added '--enable-libtls-only' build option, which builds and installs a
1157: statically-linked libtls, skipping libcrypto and libssl. This is useful
1158: for systems that ship with OpenSSL but wish to also package libtls.
1.3 benno 1159:
1.38 tb 1160: <li>Update getentropy on Windows to use Cryptography Next Generation
1161: (CNG). wincrypt is deprecated and no longer works with newer Windows
1162: environments, such as in Windows Store apps.
1.1 deraadt 1163: </ul>
1164:
1165: <li>API and Documentation Enhancements
1166: <ul>
1.38 tb 1167: <li>Add a number of RPKI OIDs from RFC 6482, 6484, 6493, 8182, 8360,
1168: draft-ietf-sidrops-rpki-rta, and draft-ietf-opsawg-finding-geofeeds.
1169:
1.39 tb 1170: <li>Add support for
1171: <a href="https://man.openbsd.org/SSL_get_shared_ciphers.3">SSL_get_shared_ciphers(3)</a>
1172: with TLSv1.3.
1.38 tb 1173:
1174: <li>Add DTLSv1.2 methods.
1175:
1.39 tb 1176: <li>Implement SSL_is_dtls(3) and use it internally in place of the
1.38 tb 1177: SSL_IS_DTLS macro.
1178:
1.39 tb 1179: <li>Provide
1180: <a href="https://man.openbsd.org/EVP_PKEY_new_CMAC_KEY.3">EVP_PKEY_new_CMAC_KEY(3)</a>.
1181: <li>Add missing prototype for
1182: <a href="https://man.openbsd.org/d2i_DSAPrivateKey_fp.3">d2i_DSAPrivateKey_fp(3)</a>
1183: to x509.h.
1184:
1185: <li>Add DTLSv1.2 to
1186: <a href="https://man.openbsd.org/openssl.1">openssl(1)</a>
1187: s_server and s_client protocol message logging.
1188:
1189: <li>Provide
1190: <a href="https://man.openbsd.org/SSL_use_certificate_chain_file.3">SSL_use_certificate_chain_file(3)</a>.
1191:
1192: <li>Provide
1193: <a href="https://man.openbsd.org/SSL_set_hostflags.3">SSL_set_hostflags(3)</a>
1194: and
1195: <a href="https://man.openbsd.org/SSL_get0_peername.3">SSL_get0_peername(3)</a>.
1.38 tb 1196:
1197: <li>Provide various DTLSv1.2 specific functions and defines.
1198:
1199: <li>Document meaning of '*' in the genrsa output.
1200:
1.39 tb 1201: <li>Updated documentation for
1202: <a href="https://man.openbsd.org/SSL_get_shared_ciphers.3">SSL_get_shared_ciphers(3)</a>.
1203:
1204: <li>Add documentation for
1205: <a href="https://man.openbsd.org/SSL_get_finished.3">SSL_get_finished(3)</a>.
1.38 tb 1206:
1.39 tb 1207: <li>Document
1208: <a href="https://man.openbsd.org/EVP_PKEY_new_CMAC_key.3">EVP_PKEY_new_CMAC_key(3)</a>.
1.38 tb 1209:
1210:
1.39 tb 1211: <li>Document
1212: <a href="https://man.openbsd.org/SSL_use_certificate_chain_file.3">SSL_use_certificate_chain_file(3)</a>.
1.38 tb 1213:
1.39 tb 1214: <li>Document
1215: <a href="https://man.openbsd.org/SSL_set_hostflags.3">SSL_set_hostflags(3)</a>
1216: and
1217: <a href="https://man.openbsd.org/SSL_get0_peername.3">SSL_get0_peername(3)</a>.
1.38 tb 1218:
1.39 tb 1219: <li>Update
1220: <a href="https://man.openbsd.org/SSL_get_version.3">SSL_get_version(3)</a>
1221: manual for DTLSv.1.2 support.
1.38 tb 1222:
1223: <li>Make supported protocols and options for DHE params more prominent
1.39 tb 1224: in <a href="https://man.openbsd.org/tls_config_set_protocols.3">tls_config_set_protocols(3)</a>.
1.38 tb 1225:
1226: <li>Various documentation improvements around TLS methods.
1.1 deraadt 1227: </ul>
1228:
1229: <li>Compatibility Changes
1230: <ul>
1.39 tb 1231: <li>Make <a href="https://man.openbsd.org/openssl.3">openssl(1)</a> s_server
1232: ignore -4 and -6 for compatibility with OpenSSL.
1.38 tb 1233:
1.39 tb 1234: <li>Set SO_REUSEADDR on the server socket in the
1235: <a href="https://man.openbsd.org/openssl.1">openssl(1)</a> ocsp command.
1.38 tb 1236:
1.39 tb 1237: <li>Send a host header with OCSP queries to make
1238: <a href="https://man.openbsd.org/openssl.1">openssl(1)</a> ocsp
1.38 tb 1239: work with some widely used OCSP responders.
1240:
1.39 tb 1241: <li>Add ability to
1242: <a href="https://man.openbsd.org/ocspcheck.8">ocspcheck(8)</a>
1243: to parse a port in the specified OCSP URL.
1.38 tb 1244:
1245: <li>Implement auto chain for the TLSv1.3 server since some software
1246: relies on this.
1247:
1248: <li>Implement key exporter for TLSv1.3.
1.39 tb 1249: <li>Align <a href="https://man.openbsd.org/SSL_get_shared_ciphers.3">SSL_get_shared_ciphers(3)</a>
1250: with OpenSSL. This takes into account that it never returned server
1251: ciphers, so now it will fail when called from the client side.
1.38 tb 1252:
1253: <li>Sync cert.pem with Mozilla NSS root CAs except "GeoTrust Global CA".
1254:
1.39 tb 1255: <li>Make
1256: <a href="https://man.openbsd.org/SSL_CTX_get_min_proto_version.3">SSL{_CTX,}_get_{min,max}_proto_version(3)</a>
1257: return a version of zero if the minimum or maximum has been set to
1258: zero to match OpenSSL's behavior.
1.38 tb 1259:
1.39 tb 1260: <li>Add DTLSv1.2 support to
1261: <a href="https://man.openbsd.org/openssl.1">openssl(1)</a> s_client/s_server.
1.1 deraadt 1262: </ul>
1263:
1264: <li>Testing and Proactive Security
1265: <ul>
1.38 tb 1266: <li>Malformed ASN.1 in a certificate revocation list or a timestamp
1267: response token can lead to a NULL pointer dereference.
1268:
1.39 tb 1269: <li>Pull in fix for
1270: <a href="https://man.openbsd.org/EVP_CipherUpdate.3">EVP_CipherUpdate(3)</a>
1271: overflow from OpenSSL.
1.38 tb 1272:
1273: <li>Use EXFLAG_INVALID to handle out of memory and parse errors in
1274: x509v3_cache_extensions().
1275:
1.39 tb 1276: <li>Refactor and clean up
1277: <a href="https://man.openbsd.org/ocspcheck.8">ocspcheck(8)</a>
1278: and add regression tests.
1.1 deraadt 1279: </ul>
1280:
1281: <li>Internal Improvements
1282: <ul>
1.38 tb 1283: <li>Further cleanup of the DTLS record handling.
1284:
1285: <li>Continue the replacement of the TLSv1.2 record layer by
1286: reimplementing the read side of the TLSv1.2 record handling.
1287:
1288: <li>Replace DTLSv1_enc_data() with TLSv1_1_enc_data().
1289:
1290: <li>Merge d1_{clnt,srvr}.c into ssl_{clnt,srvr}.c.
1291:
1292: <li>Add const to ssl_ciphers and tls1[23]_sigalgs* to push them into
1293: .data.rel.ro and .rodata, respectively.
1294:
1295: <li>Add a const qualifier to srtp_known_profiles.
1296:
1297: <li>Simplify TLS method by removing the client and server specific
1298: methods internally.
1299:
1300: <li>Avoid casting away const in ssl_ctx_make_profiles().
1301:
1302: <li>Avoid explicitly conditioning an assert on DTLS1_VERSION to make
1303: the assert work for newer DTLS versions.
1304:
1305: <li>Merge SSL_ENC_METHOD into SSL_METHOD_INTERNAL.
1306:
1307: <li>Add a flag to mark DTLS methods as DTLS to have an easy way to
1308: recognize DTLS methods that avoids inspecting the version number.
1309:
1310: <li>Mark a few more internal static tables const.
1311:
1312: <li>Switch finish{,_peer}_md_len from an int to a size_t.
1313:
1314: <li>Use EVP_MD_MAX_MD_SIZE instead of 2 * EVP_MD_MAX_MD_SIZE as size
1315: for cert_verify_md[], finish_md[] and peer_finish_md[]. The factor 2
1316: was a historical artefact.
1317:
1318: <li>Free struct members in tls13_record_layer_free() in their natural
1319: order for reviewability.
1320:
1321: <li>Use consistent names in tls13_{client,server}_finished_{recv,send}().
1322:
1323: <li>Add tls13_secret_{init,cleanup}() and use them throughout the
1324: TLSv1.3 code base.
1325:
1326: <li>Move the read MAC key into the TLSv1.2 record layer.
1327:
1328: <li>Make tls12_record_layer_free() NULL safe.
1329:
1330: <li>Split the record protection from the TLSv1.2 record layer.
1331:
1332: <li>Clean up sequence number handling in the new TLSv1.2 record layer.
1333:
1334: <li>Clean up sequence number handling in DTLS.
1335:
1336: <li>Clean up dtls1_reset_seq_numbers().
1337:
1338: <li>Factor out code for explicit IV length, block size and MAC length
1339: from tls12_record_layer_open_record_protected_cipher().
1340:
1341: <li>Provide record layer overhead for DTLS.
1342:
1343: <li>Provide functions to determine if TLSv1.2 record protection is
1344: engaged.
1345:
1346: <li>Add code to handle change of cipher state in the new TLSv1.2 record
1347: layer.
1348:
1349: <li>Mop up now unused dtls1_build_sequence_numbers() function.
1350:
1351: <li>Allow setting a keypair on a tls context without specifying the
1352: private key, and fake it internally in libtls. This removes the
1353: need for privsep engines like relayd to use bogus keys.
1354:
1355: <li>Skip the private key check for fake private keys.
1356:
1357: <li>Move the private key setup from tls_configure_ssl_keypair() to a
1358: helper function with proper error checking.
1359:
1360: <li>Change the internal tls_configure_ssl_keypair() function to
1361: return -1 instead of 1 on failure.
1362:
1363: <li>Move sequence numbers into the new TLSv1.2 record layer.
1364:
1365: <li>Move AEAD handling into the new TLSv1.2 record layer.
1366:
1367: <li>Factor out legacy stack version checks.
1368:
1369: <li>Correct handshake MAC/PRF for various TLSv1.2 cipher suites which
1370: were originally added with the default handshake MAC and PRF rather
1371: than the SHA256 handshake MAC and PRF.
1372:
1373: <li>Absorb ssl3_get_algorithm2() into ssl_get_handshake_evp_md().
1374:
1375: <li>Use dtls1_record_retrieve_buffered_record() to load buffered
1376: application data.
1377:
1378: <li>Enforce read ahead with DTLS.
1379:
1380: <li>Remove bogus DTLS checks that disabled ECC and OCSP.
1381:
1382: <li>Clean up and simplify dtls1_get_cipher().
1383:
1384: <li>Group HelloVerifyRequest decoding and add missing check for trailing
1385: data.
1386:
1387: <li>Revise HelloVerifyRequest handling for DTLSv1.2.
1388:
1389: <li>Handle DTLS1_2_VERSION in various places.
1390:
1391: <li>Rename the "truncated" label into "decode_err" and the "f_err"
1392: label into "fatal_err".
1393:
1394: <li>Factor out and change some of the legacy client version code.
1395:
1396: <li>Simplify version checks in the TLSv1.3 client. Ensure that the
1397: server announced TLSv1.3 and nothing higher and check that the
1398: legacy_version is set to TLSv1.2 as required by RFC 8446.
1399:
1400: <li>Only use TLS versions internally rather than both TLS and DTLS
1401: versions since the latter are the one's complement of the human
1402: readable version numbers, which means that newer versions decrease
1403: in value.
1404:
1405: <li>Identify DTLS based on the version major value.
1406:
1407: <li>Move handling of cipher/hash based cipher suites into the new record
1408: layer.
1409:
1410: <li>Add tls12_record_protection_unused() and call it from CCS functions.
1411:
1412: <li>Move key/IV length checks closer to usage sites. Also add explicit
1.39 tb 1413: checks against
1414: <a href="https://man.openbsd.org/EVP_CIPHER_iv_length.3">EVP_CIPHER_{iv,key}_length()</a>.
1.38 tb 1415:
1416: <li>Replace two handrolled tls12_record_protection_engaged().
1417:
1418: <li>Improve internal version handling: add handshake fields for our
1419: minimum version, our maximum version and the TLS version negotiated
1420: during the handshake. Convert most of the internal code to use these
1421: version fields.
1422:
1423: <li>Guard against future internal use of TLS1_get_{client,}_version()
1424: macros.
1425:
1426: <li>Remove the internal ssl_downgrade_max_version() function which is no
1427: longer needed.
1428:
1429: <li>Add support for DTLSv1.2 version handling.
1430:
1431: <li>Remove no longer needed read ahead workarounds in the s_client and
1432: s_server.
1433:
1434: <li>Split TLSv1.3 record protection from record layer.
1435:
1436: <li>Move the TLSv1.3 handshake struct inside the shared handshake
1437: struct.
1438:
1439: <li>Fully initialize rrec in tls12_record_layer_open_record_protected()
1440: to avoid confusing some static analyzers.
1441:
1442: <li>Use tls_set_errorx() on OCSP_basic_verify() failure since the latter
1443: does not set errno.
1444:
1445: <li>Convert openssl(1) x509 to new option handling and do the usual
1446: clean up that goes along with it.
1447:
1448: <li>Add SSL_HANDSHAKE_TLS12 for TLSv1.2 specific handshake data.
1449:
1450: <li>Rename new_cipher to cipher to align naming with keyblock or other
1451: parts of the handshake data.
1452:
1453: <li>Move the TLSv1.2 record number increment into the new record layer.
1454:
1455: <li>Move finished and peer finished into the handshake struct.
1456:
1457: <li>Remove pointless assignment in SSL_get0_alpn_selected().
1458:
1459: <li>Add some error checking to openssl(1) x509.
1.1 deraadt 1460: </ul>
1461:
1.38 tb 1462: <li>Bug Fixes
1.1 deraadt 1463: <ul>
1.38 tb 1464: <li>Move point-on-curve check to set_affine_coordinates to avoid
1465: verifying ECDSA signatures with unchecked public keys.
1466:
1.39 tb 1467: <li>Fix
1468: <a href="https://man.openbsd.org/SSL_is_server.3">SSL_is_server(3)</a>
1469: to behave as documented by re-introducing the client-specific
1470: methods.
1.38 tb 1471:
1472: <li>Avoid undefined behavior due to memcpy(NULL, NULL, 0).
1473:
1474: <li>Make SSL_get{,_peer}_finished() work when used with TLSv1.3.
1475:
1476: <li>Correct the return value type from ERR_peek_error() to a long.
1477:
1478: <li>Avoid use of uninitialized in ASN1_time_parse() which could happen
1479: on parsing UTCTime if the caller did not initialise the passed
1480: struct tm.
1481:
1482: <li>Destroy the mutex in a tls_config object on tls_config_free().
1483:
1484: <li>Free alert_data and phh_data in tls13_record_layer_free()
1.39 tb 1485: these could leak if
1486: <a href="https://man.openbsd.org/SSL_shutdown.3">SSL_shutdown(3)</a>
1487: or <a href="https://man.openbsd.org/tls_close.3">tls_close(3)</a>
1488: were called after closing the underlying socket().
1.38 tb 1489:
1490: <li>Gracefully handle root certificates being both trusted and
1491: untrusted.
1492:
1493: <li>Handle X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE in the new
1494: verifier.
1495:
1496: <li>Use the legacy verifier when building auto chains for TLS.
1497:
1498: <li>Search the intermediates only after searching the root certs in the
1499: new verifier to avoid problems with the legacy callback.
1500:
1501: <li>Bail out early after finding a single chain in the new verifier, if
1502: we have been called via the legacy verifier API.
1503:
1504: <li>Set (invalid and likely incomplete) chain on the xsc on chain build
1505: failure prior to calling the callback. This is required by various
1506: callers, including auto chain.
1507:
1508: <li>Remove direct assignment of aead_ctx to avoid a leak.
1509:
1510: <li>Fail early in legacy exporter if the master secret is not available
1511: to avoid a segfault if it is called when the handshake is not
1512: completed.
1513:
1514: <li>Only print the certificate file once on verification failure.
1515:
1516: <li>Fix an off-by-one in x509_verify_set_xsc_chain() to make sure that
1517: the new validator checks for EXFLAG_CRITICAL in
1518: x509_vfy_check_chain_extension() for all untrusted certs in the
1519: chain. Take into account that the root is not necessarily trusted.
1520:
1521: <li>Avoid passing last and depth to x509_verify_cert_error() on ENOMEM.
1522:
1523: <li>Fix two bugs in the legacy verifier that resulted from refactoring
1.39 tb 1524: of
1525: <a href="https://man.openbsd.org/X509_verify_cert.3">X509_verify_cert(3)</a>
1526: for the new verifier: a return value was incorrectly treated as
1527: boolean, making it insufficient to decide whether validation should
1528: carry on or not.
1.38 tb 1529:
1530: <li>Fix checks for memory caps of constraints names. There are internal
1531: caps on the number of name constraints and other names, that the new
1532: name constraints code allocates per cert chain. These limits were
1533: checked too late, making them only partially effective.
1534:
1535: <li>Fix a copy-paste error - skid was confused with an akid when
1536: checking for EXFLAG_INVALID. This broke OCSP validation with
1537: certain mirrors.
1538:
1539: <li>Avoid a use-after-scope in tls13_cert_add().
1540:
1541: <li>Avoid mangled output in BIO_debug_callback().
1542:
1543: <li>Fix client initiated renegotiation by replacing use of s->internal-type
1544: with s->server.
1545:
1546: <li>Avoid transcript initialization when sending a TLS HelloRequest,
1547: fixing server initiated renegotiation.
1548:
1549: <li>Avoid leaking param->name in x509_verify_param_zero().
1550:
1551: <li>Avoid a leak in an error path in openssl(1) x509.
1552:
1553: <li>When sending an alert in TLSv1.3, only set its error code when no
1554: other error was set previously. Certain clients rely on specific
1555: SSL_R_ error codes to identify that they are dealing with a self
1556: signed cert.
1557:
1558: <li>When switching from the TLSv1.3 stack to the legacy stack include
1559: a TLS record header. This is necessary if there is more than one
1560: handshake message in the TLS plaintext record.
1561:
1562: <li>Fix resource handling on error in OCSP_request_add0_id().
1563:
1564: <li>Make sure there is enough room for stashing the handshake message
1565: when switching to the legacy TLS stack.
1566:
1567: <li>Fix a memory leak in the openssl(1) s_client.
1568:
1569: <li>Unbreak DTLS retransmissions for flights that include a CCS.
1570:
1571: <li>If x509_verify() fails, ensure that the error is set on both
1572: the x509_verify_ctx() and its store context to make some failures
1573: visible from SSL_get_verify_result().
1574:
1575: <li>Use the X509_STORE_CTX get_issuer() callback from the new X.509
1576: verifier to fix hashed certificate directories.
1577:
1.39 tb 1578: <li>Only check
1579: <a href="https://man.openbsd.org/BIO_should_read.3">BIO_should_read(3)</a>
1580: on read and
1581: <a href="https://man.openbsd.org/BIO_should_write.3">BIO_should_write(3)</a>
1582: on write. Previously,
1583: <a href="https://man.openbsd.org/BIO_should_write.3">BIO_should_write(3)</a>
1584: was also checked after read and
1585: <a href="https://man.openbsd.org/BIO_should_read.3">BIO_should_read(3)</a>
1586: after write which could cause stalls in software that uses the same
1587: BIO for read and write.
1588:
1589: <li>In <a href="https://man.openbsd.org/openssl.1">openssl(1)</a>
1590: verify, also check for error on the store context since the return
1591: value of
1592: <a href="https://man.openbsd.org/X509_verify_cert.3">X509_verify_cert(3)</a>
1593: is unreliable in presence of a callback that returns 1 too often.
1.38 tb 1594:
1595: <li>Handle additional certificate error cases in the new X.509 verifier.
1596: Keep track of the errors encountered if a verify callback tells the
1597: verifier to continue and report them back via the error on the store
1598: context. This mimics the behavior of the old verifier that would
1599: persist the first error encountered while building the chain.
1600:
1601: <li>Report specific failures for "self signed certificates" in a way
1602: compatible with the old verifier since software relies on the
1603: error code.
1604:
1605: <li>Plug a large memory leak in the new verifier caused by calling
1.39 tb 1606: X509_policy_check(3) repeatedly.
1.1 deraadt 1607:
1.38 tb 1608: <li>Avoid leaking memory in x509_verify_chain_dup().
1.1 deraadt 1609: </ul>
1610: </ul>
1611:
1.15 benno 1612: <li>OpenSSH 8.5
1.1 deraadt 1613: <ul>
1.33 benno 1614: <li>Security fixes
1615: <ul>
1616: <li><a href="https://man.openbsd.org/ssh-agent.1">ssh-agent(1)</a>:
1617: fixed a double-free memory corruption that was introduced in OpenSSH
1618: 8.2 . We treat all such memory faults as potentially exploitable. This
1619: bug could be reached by an attacker with access to the agent socket.<br>
1.3 benno 1620:
1.33 benno 1621: On modern operating systems where the OS can provide information
1622: about the user identity connected to a socket, OpenSSH ssh-agent and
1623: sshd limit agent socket access only to the originating user and root.
1624: Additional mitigation may be afforded by the system's
1625: malloc(3)/free(3) implementation, if it detects double-free
1626: conditions.<br>
1.3 benno 1627:
1.33 benno 1628: The most likely scenario for exploitation is a user forwarding an
1629: agent either to an account shared with a malicious user or to a host
1630: with an attacker holding root access.
1631: </ul>
1.1 deraadt 1632: <li>Potentially incompatible changes.
1633: <ul>
1.33 benno 1634: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>, <a
1635: href="https://man.openbsd.org/sshd.8">sshd(8)</a>: this release
1636: changes the first-preference signature algorithm from ECDSA to
1637: ED25519.
1638:
1639: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>, <a
1640: href="https://man.openbsd.org/sshd.8">sshd(8)</a>: set the TOS/DSCP
1641: specified in the configuration for interactive use prior to TCP
1642: connect. The connection phase of the SSH session is time-sensitive and
1643: often explicitly interactive. The ultimate interactive/bulk TOS/DSCP
1644: will be set after authentication completes.
1645:
1646: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>, <a
1647: href="https://man.openbsd.org/sshd.8">sshd(8)</a>: remove the
1648: pre-standardization cipher rijndael-cbc@lysator.liu.se. It is an alias
1649: for aes256-cbc before it was standardized in RFC4253 (2006), has been
1650: deprecated and disabled by default since OpenSSH 7.2 (2016) and was
1651: only briefly documented in ssh.1 in 2001.
1652:
1653: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>, <a
1654: href="https://man.openbsd.org/sshd.8">sshd(8)</a>: update/replace the
1655: experimental post-quantum hybrid key exchange method based on
1656: Streamlined NTRU Prime coupled with X25519.<br>
1657:
1658: The previous sntrup4591761x25519-sha512@tinyssh.org method is
1659: replaced with sntrup761x25519-sha512@openssh.com. Per its designers,
1660: the sntrup4591761 algorithm was superseded almost two years ago by
1661: sntrup761.
1662: (note this both the updated method and the one that it replaced are
1663: disabled by default)
1664:
1665: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>: disable
1666: CheckHostIP by default. It provides insignificant benefits while
1667: making key rotation significantly more difficult, especially for hosts
1668: behind IP-based load-balancers.
1.1 deraadt 1669: </ul>
1670: <li>New Features
1671: <ul>
1.33 benno 1672: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>: this release
1673: enables UpdateHostkeys by default subject to some conservative
1674: preconditions:
1675: <ul>
1676: <li>The key was matched in the UserKnownHostsFile (and not in the
1677: GlobalKnownHostsFile).
1678: <li>The same key does not exist under another name.
1679: <li>A certificate host key is not in use.
1680: <li>known_hosts contains no matching wildcard hostname pattern.
1681: <li>VerifyHostKeyDNS is not enabled.
1682: <li>The default UserKnownHostsFile is in use.
1683: </ul>
1684: We expect some of these conditions will be modified or relaxed in
1685: future.
1686:
1687: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>, <a
1688: href="https://man.openbsd.org/sshd.8">sshd(8)</a>: add a new
1689: LogVerbose configuration directive for that allows forcing maximum
1690: debug logging by file/function/line pattern-lists.
1691:
1692: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>: when
1693: prompting the user to accept a new hostkey, display any other host
1694: names/addresses already associated with the key.
1695:
1696: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>: allow
1697: UserKnownHostsFile=none to indicate that no known_hosts file should be
1698: used to identify host keys.
1699:
1700: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>: add a
1701: ssh_config KnownHostsCommand option that allows the client to obtain
1702: known_hosts data from a command in addition to the usual files.
1703:
1704: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>: add a
1705: ssh_config PermitRemoteOpen option that allows the client to restrict
1706: the destination when RemoteForward is used with SOCKS.
1707:
1708: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>: for FIDO
1709: keys, if a signature operation fails with a "incorrect PIN" reason and
1710: no PIN was initially requested from the user, then request a PIN and
1711: retry the operation. This supports some biometric devices that fall
1712: back to requiring PIN when reading of the biometric failed, and
1713: devices that require PINs for all hosted credentials.
1714:
1715: <li><a href="https://man.openbsd.org/sshd.8">sshd(8)</a>: implement
1716: client address-based rate-limiting via new <a
1717: href="https://man.openbsd.org/sshd_config.5">sshd_config(5)</a>
1718: PerSourceMaxStartups and PerSourceNetBlockSize directives that provide
1719: more fine-grained control on a per-origin address basis than the
1720: global MaxStartups limit.
1.1 deraadt 1721: </ul>
1722: <li>Bugfixes
1723: <ul>
1.33 benno 1724: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>: Prefix
1725: keyboard interactive prompts with "(user@host)" to make it easier to
1726: determine which connection they are associated with in cases like scp
1727: -3, ProxyJump, etc. bz#3224
1728:
1729: <li><a href="https://man.openbsd.org/sshd.8">sshd(8)</a>: fix
1730: sshd_config SetEnv directives located inside Match blocks. GHPR#201
1731:
1732: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>: when
1733: requesting a FIDO token touch on stderr, inform the user once the
1734: touch has been recorded.
1735:
1736: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>: prevent
1737: integer overflow when ridiculously large ConnectTimeout values are
1738: specified, capping the effective value (for most platforms) at 24
1739: days. bz#3229
1740:
1741: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>: consider the
1742: ECDSA key subtype when ordering host key algorithms in the client.
1743:
1744: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>, <a
1745: href="https://man.openbsd.org/sshd.8">sshd(8)</a>: rename the
1746: PubkeyAcceptedKeyTypes keyword to PubkeyAcceptedAlgorithms. The
1747: previous name incorrectly suggested that it control allowed key
1748: algorithms, when this option actually specifies the signature
1749: algorithms that are accepted. The previous name remains available as
1750: an alias. bz#3253
1751:
1752: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>, <a
1753: href="https://man.openbsd.org/sshd.8">sshd(8)</a>: similarly, rename
1754: HostbasedKeyTypes (ssh) and HostbasedAcceptedKeyTypes (sshd) to
1755: HostbasedAcceptedAlgorithms.
1756:
1757: <li><a
1758: href="https://man.openbsd.org/sftp-server.8">sftp-server(8)</a>: add
1759: missing lsetstat@openssh.com documentation and advertisement in the
1760: server's SSH2_FXP_VERSION hello packet.
1761:
1762: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>, <a
1763: href="https://man.openbsd.org/sshd.8">sshd(8)</a>: more strictly
1764: enforce KEX state-machine by banning packet types once they are
1765: received. Fixes memleak caused by duplicate
1766: SSH2_MSG_KEX_DH_GEX_REQUEST (oss-fuzz #30078).
1767:
1768: <li><a href="https://man.openbsd.org/sftp.1">sftp(1)</a>: allow the
1769: full range of UIDs/GIDs for chown/chgrp on 32bit platforms instead of
1770: being limited by LONG_MAX. bz#3206
1771:
1772: <li>Minor man page fixes (capitalization, commas, etc.) bz#3223
1773:
1774: <li><a href="https://man.openbsd.org/sftp.1">sftp(1)</a>: when doing
1775: an sftp recursive upload or download of a read-only directory, ensure
1776: that the directory is created with write and execute permissions in
1777: the interim so that the transfer can actually complete, then set the
1778: directory permission as the final step. bz#3222
1779:
1780: <li><a href="https://man.openbsd.org/ssh-keygen.1">ssh-keygen(1)</a>:
1781: document the -Z, check the validity of its argument earlier and
1782: provide a better error message if it's not correct. bz#2879
1783:
1784: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>: ignore
1785: comments at the end of config lines in ssh_config, similar to what we
1786: already do for sshd_config. bz#2320
1787:
1788: <li><a
1789: href="https://man.openbsd.org/sshd_config.5">sshd_config(5)</a>:
1790: mention that DisableForwarding is valid in a sshd_config Match block.
1791: bz3239
1792:
1793: <li><a href="https://man.openbsd.org/sftp.1">sftp(1)</a>: fix
1794: incorrect sorting of "ls -ltr" under some circumstances. bz3248.
1795:
1796: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>, <a
1797: href="https://man.openbsd.org/sshd.8">sshd(8)</a>: fix potential
1798: integer truncation of (unlikely) timeout values. bz#3250
1799:
1800: <li><a href="https://man.openbsd.org/ssh.1">ssh(1)</a>: make
1801: hostbased authentication send the signature algorithm in its
1802: SSH2_MSG_USERAUTH_REQUEST packets instead of the key type. This make
1803: HostbasedAcceptedAlgorithms do what it is supposed to - filter on
1804: signature algorithm and not key type.
1.1 deraadt 1805: </ul>
1806: </ul>
1807:
1808: <li>Ports and packages:
1809: <p>Many pre-built packages for each architecture:
1810: <!-- number of FTP packages minus SHA256, SHA256.sig, index.txt -->
1811: <ul style="column-count: 3">
1812: <li>aarch64: XXX
1813: <li>amd64: XXX
1814: <li>arm: XXX
1815: <li>i386: XXX
1816: <li>mips64: XXX
1817: <li>mips64el: XXX
1818: <li>powerpc: XXX
1819: <li>powerpc64: XXX
1820: <li>sparc64: XXX
1821: </ul>
1822:
1.40 rsadowsk 1823: <p>Some highlights:
1824: <ul style="column-count: 3">
1825: <li>Asterisk 18.3.0
1826: <li>Audacity 2.4.2
1827: <li>CMake 3.19.4
1.50 lteo 1828: <li>Chromium 90.0.4430.72
1.40 rsadowsk 1829: <li>Emacs 27.2
1830: <li>FFmpeg 4.3.2
1831: <li>GCC 8.4.0
1832: <li>GHC 8.10.3
1833: <li>GNOME 3.38
1834: <li>Go 1.16.2
1835: <li>JDK 8u282 and 11.0.10
1836: <li>KDE Applications 20.12.3
1837: <li>KDE Frameworks 5.80.0
1838: <li>Krita 4.4.3
1.46 sthen 1839: <li>LLVM/Clang 10.0.1
1.40 rsadowsk 1840: <li>LibreOffice 7.0.5.2
1841: <li>Lua 5.1.5, 5.2.4 and 5.3.6
1842: <li>MariaDB 10.5.9
1843: <li>Mono 6.12.0.122
1844: <li>Mozilla Firefox 87.0 and ESR 78.9.0
1845: <li>Mozilla Thunderbird 78.9.1
1846: <li>Mutt 2.0.6 and NeoMutt 20210205
1847: <li>Node.js 12.16.1
1848: <li>OCaml 4.10.0
1.45 sthen 1849: <li>OpenLDAP 2.4.58
1850: <li>PHP 7.2.34, 7.3.27, 7.4.16 and 8.0.3
1851: <li>Postfix 3.5.10
1.40 rsadowsk 1852: <li>PostgreSQL 13.2
1853: <li>Python 2.7.18, 3.8.8 and 3.9.2
1854: <li>Qt 5.15.2
1855: <li>R 4.0.5
1856: <li>Ruby 2.6.7, 2.7.3 and 3.0.1
1857: <li>Rust 1.51.0
1.45 sthen 1858: <li>SQLite 3.34.1
1.40 rsadowsk 1859: <li>Shotcut 21.01.29
1860: <li>Sudo 1.9.6p1
1861: <li>Suricata 6.0.1
1862: <li>Tcl/Tk 8.5.19 and 8.6.8
1863: <li>TeX Live 2020
1864: <li>Vim 8.2.2580 and Neovim 0.4.4
1865: <li>Xfce 4.16
1866: </ul>
1867: <p>
1868:
1.1 deraadt 1869: <li>As usual, steady improvements in manual pages and other documentation.
1870:
1871: <li>The system includes the following major components from outside suppliers:
1872: <ul>
1.5 benno 1873:
1874: <li>Xenocara (based on X.Org 7.7 with xserver 1.20.10 + patches,
1.32 matthieu 1875: freetype 2.10.4, fontconfig 2.12.4, Mesa 20.0.8, xterm 367,
1.5 benno 1876: xkeyboard-config 2.20, fonttosfnt 1.2.1 and more)
1.1 deraadt 1877: <li>LLVM/Clang 10.0.1 (+ patches)
1878: <li>GCC 4.2.1 (+ patches) and 3.3.6 (+ patches)
1.10 benno 1879: <li>Perl 5.32.1 (+ patches)
1.8 florian 1880: <li>NSD 4.3.6
1881: <li>Unbound 1.13.1
1.1 deraadt 1882: <li>Ncurses 5.7
1883: <li>Binutils 2.17 (+ patches)
1884: <li>Gdb 6.3 (+ patches)
1.5 benno 1885: <li>Awk December 18, 2020 version
1886: <li>Expat 2.2.10
1.1 deraadt 1887: </ul>
1888:
1889: </ul>
1890: </section>
1891:
1892: <hr>
1893:
1894: <section id=install>
1895: <h3>How to install</h3>
1896: <p>
1897: Please refer to the following files on the mirror site for
1898: extensive details on how to install OpenBSD 6.9 on your machine:
1899:
1900: <ul>
1901: <li><a href="https://ftp.openbsd.org/pub/OpenBSD/6.9/alpha/INSTALL.alpha">
1902: .../OpenBSD/6.9/alpha/INSTALL.alpha</a>
1903: <li><a href="https://ftp.openbsd.org/pub/OpenBSD/6.9/amd64/INSTALL.amd64">
1904: .../OpenBSD/6.9/amd64/INSTALL.amd64</a>
1905: <li><a href="https://ftp.openbsd.org/pub/OpenBSD/6.9/arm64/INSTALL.arm64">
1906: .../OpenBSD/6.9/arm64/INSTALL.arm64</a>
1907: <li><a href="https://ftp.openbsd.org/pub/OpenBSD/6.9/armv7/INSTALL.armv7">
1908: .../OpenBSD/6.9/armv7/INSTALL.armv7</a>
1909: <li><a href="https://ftp.openbsd.org/pub/OpenBSD/6.9/hppa/INSTALL.hppa">
1910: .../OpenBSD/6.9/hppa/INSTALL.hppa</a>
1911: <li><a href="https://ftp.openbsd.org/pub/OpenBSD/6.9/i386/INSTALL.i386">
1912: .../OpenBSD/6.9/i386/INSTALL.i386</a>
1913: <li><a href="https://ftp.openbsd.org/pub/OpenBSD/6.9/landisk/INSTALL.landisk">
1914: .../OpenBSD/6.9/landisk/INSTALL.landisk</a>
1915: <li><a href="https://ftp.openbsd.org/pub/OpenBSD/6.9/loongson/INSTALL.loongson">
1916: .../OpenBSD/6.9/loongson/INSTALL.loongson</a>
1917: <li><a href="https://ftp.openbsd.org/pub/OpenBSD/6.9/luna88k/INSTALL.luna88k">
1918: .../OpenBSD/6.9/luna88k/INSTALL.luna88k</a>
1919: <li><a href="https://ftp.openbsd.org/pub/OpenBSD/6.9/macppc/INSTALL.macppc">
1920: .../OpenBSD/6.9/macppc/INSTALL.macppc</a>
1921: <li><a href="https://ftp.openbsd.org/pub/OpenBSD/6.9/octeon/INSTALL.octeon">
1922: .../OpenBSD/6.9/octeon/INSTALL.octeon</a>
1923: <li><a href="https://ftp.openbsd.org/pub/OpenBSD/6.9/powerpc64/INSTALL.powerpc64">
1.4 landry 1924: .../OpenBSD/6.9/powerpc64/INSTALL.powerpc64</a>
1.1 deraadt 1925: <li><a href="https://ftp.openbsd.org/pub/OpenBSD/6.9/sgi/INSTALL.sgi">
1926: .../OpenBSD/6.9/sgi/INSTALL.sgi</a>
1927: <li><a href="https://ftp.openbsd.org/pub/OpenBSD/6.9/sparc64/INSTALL.sparc64">
1928: .../OpenBSD/6.9/sparc64/INSTALL.sparc64</a>
1929: </ul>
1930: </section>
1931:
1932: <hr>
1933:
1934: <section id=quickinstall>
1935: <p>
1936: Quick installer information for people familiar with OpenBSD, and the use of
1937: the "<a href="https://man.openbsd.org/disklabel.8">disklabel</a> -E" command.
1938: If you are at all confused when installing OpenBSD, read the relevant
1939: INSTALL.* file as listed above!
1940:
1941: <h3>OpenBSD/alpha:</h3>
1942:
1943: <p>
1944: If your machine can boot from CD, you can write <i>install69.iso</i> or
1945: <i>cd69.iso</i> to a CD and boot from it.
1946: Refer to INSTALL.alpha for more details.
1947:
1948: <h3>OpenBSD/amd64:</h3>
1949:
1950: <p>
1951: If your machine can boot from CD, you can write <i>install69.iso</i> or
1952: <i>cd69.iso</i> to a CD and boot from it.
1953: You may need to adjust your BIOS options first.
1954:
1955: <p>
1956: If your machine can boot from USB, you can write <i>install69.img</i> or
1957: <i>miniroot69.img</i> to a USB stick and boot from it.
1958:
1959: <p>
1960: If you can't boot from a CD, floppy disk, or USB,
1961: you can install across the network using PXE as described in the included
1962: INSTALL.amd64 document.
1963:
1964: <p>
1965: If you are planning to dual boot OpenBSD with another OS, you will need to
1966: read INSTALL.amd64.
1967:
1968: <h3>OpenBSD/arm64:</h3>
1969:
1970: <p>
1971: Write <i>miniroot69.img</i> to a disk and boot from it after connecting
1972: to the serial console. Refer to INSTALL.arm64 for more details.
1973:
1974: <h3>OpenBSD/armv7:</h3>
1975:
1976: <p>
1977: Write a system specific miniroot to an SD card and boot from it after connecting
1978: to the serial console. Refer to INSTALL.armv7 for more details.
1979:
1980: <h3>OpenBSD/hppa:</h3>
1981:
1982: <p>
1983: Boot over the network by following the instructions in INSTALL.hppa or the
1984: <a href="hppa.html#install">hppa platform page</a>.
1985:
1986: <h3>OpenBSD/i386:</h3>
1987:
1988: <p>
1989: If your machine can boot from CD, you can write <i>install69.iso</i> or
1990: <i>cd69.iso</i> to a CD and boot from it.
1991: You may need to adjust your BIOS options first.
1992:
1993: <p>
1994: If your machine can boot from USB, you can write <i>install69.img</i> or
1995: <i>miniroot69.img</i> to a USB stick and boot from it.
1996:
1997: <p>
1998: If you can't boot from a CD, floppy disk, or USB,
1999: you can install across the network using PXE as described in
2000: the included INSTALL.i386 document.
2001:
2002: <p>
2003: If you are planning on dual booting OpenBSD with another OS, you will need to
2004: read INSTALL.i386.
2005:
2006: <h3>OpenBSD/landisk:</h3>
2007:
2008: <p>
2009: Write <i>miniroot69.img</i> to the start of the CF
2010: or disk, and boot normally.
2011:
2012: <h3>OpenBSD/loongson:</h3>
2013:
2014: <p>
2015: Write <i>miniroot69.img</i> to a USB stick and boot bsd.rd from it
2016: or boot bsd.rd via tftp.
2017: Refer to the instructions in INSTALL.loongson for more details.
2018:
2019: <h3>OpenBSD/luna88k:</h3>
2020:
2021: <p>
2022: Copy 'boot' and 'bsd.rd' to a Mach or UniOS partition, and boot the bootloader
2023: from the PROM, and then bsd.rd from the bootloader.
2024: Refer to the instructions in INSTALL.luna88k for more details.
2025:
2026: <h3>OpenBSD/macppc:</h3>
2027:
2028: <p>
2029: Burn the image from a mirror site to a CDROM, and power on your machine
2030: while holding down the <i>C</i> key until the display turns on and
2031: shows <i>OpenBSD/macppc boot</i>.
2032:
2033: <p>
2034: Alternatively, at the Open Firmware prompt, enter <i>boot cd:,ofwboot
2035: /6.9/macppc/bsd.rd</i>
2036:
2037: <h3>OpenBSD/octeon:</h3>
2038:
2039: <p>
2040: After connecting a serial port, boot bsd.rd over the network via DHCP/tftp.
2041: Refer to the instructions in INSTALL.octeon for more details.
2042:
2043: <h3>OpenBSD/powerpc64:</h3>
2044:
2045: <p>
2046: To install, write <i>install69.img</i> or <i>miniroot69.img</i> to a
2047: USB stick, plug it into the machine and choose the <i>OpenBSD
2048: install</i> menu item in Petitboot.
2049: Refer to the instructions in INSTALL.powerpc64 for more details.
2050:
2051: <h3>OpenBSD/sgi:</h3>
2052:
2053: <p>
2054: To install, burn cd69.iso on a CD-R, put it in the CD drive of your
2055: machine and select <i>Install System Software</i> from the System Maintenance
2056: menu. Indigo/Indy/Indigo2 (R4000) systems will not boot automatically from
2057: CD-ROM, and need a proper invocation from the PROM prompt.
2058: Refer to the instructions in INSTALL.sgi for more details.
2059:
2060: <p>
2061: If your machine doesn't have a CD drive, you can setup a DHCP/tftp network
2062: server, and boot using "bootp()/bsd.rd.IP##" using the kernel matching your
2063: system type. Refer to the instructions in INSTALL.sgi for more details.
2064:
2065: <h3>OpenBSD/sparc64:</h3>
2066:
2067: <p>
2068: Burn the image from a mirror site to a CDROM, boot from it, and type
2069: <i>boot cdrom</i>.
2070:
2071: <p>
2072: If this doesn't work, or if you don't have a CDROM drive, you can write
2073: <i>floppy69.img</i> or <i>floppyB69.img</i>
2074: (depending on your machine) to a floppy and boot it with <i>boot
2075: floppy</i>. Refer to INSTALL.sparc64 for details.
2076:
2077: <p>
2078: Make sure you use a properly formatted floppy with NO BAD BLOCKS or your install
2079: will most likely fail.
2080:
2081: <p>
2082: You can also write <i>miniroot69.img</i> to the swap partition on
2083: the disk and boot with <i>boot disk:b</i>.
2084:
2085: <p>
2086: If nothing works, you can boot over the network as described in INSTALL.sparc64.
2087: </section>
2088:
2089: <hr>
2090:
2091: <section id=upgrade>
2092: <h3>How to upgrade</h3>
2093: <p>
1.22 benno 2094: If you already have an OpenBSD 6.8 system, and do not want to reinstall,
1.1 deraadt 2095: upgrade instructions and advice can be found in the
2096: <a href="faq/upgrade69.html">Upgrade Guide</a>.
2097: </section>
2098:
2099: <hr>
2100:
2101: <section id=sourcecode>
2102: <h3>Notes about the source code</h3>
2103: <p>
2104: <code>src.tar.gz</code> contains a source archive starting at <code>/usr/src</code>.
2105: This file contains everything you need except for the kernel sources,
2106: which are in a separate archive.
2107: To extract:
2108: <blockquote><pre>
2109: # <kbd>mkdir -p /usr/src</kbd>
2110: # <kbd>cd /usr/src</kbd>
2111: # <kbd>tar xvfz /tmp/src.tar.gz</kbd>
2112: </pre></blockquote>
2113: <p>
2114: <code>sys.tar.gz</code> contains a source archive starting at <code>/usr/src/sys</code>.
2115: This file contains all the kernel sources you need to rebuild kernels.
2116: To extract:
2117: <blockquote><pre>
2118: # <kbd>mkdir -p /usr/src/sys</kbd>
2119: # <kbd>cd /usr/src</kbd>
2120: # <kbd>tar xvfz /tmp/sys.tar.gz</kbd>
2121: </pre></blockquote>
2122: <p>
2123: Both of these trees are a regular CVS checkout. Using these trees it
2124: is possible to get a head-start on using the anoncvs servers as
2125: described <a href="anoncvs.html">here</a>.
2126: Using these files
2127: results in a much faster initial CVS update than you could expect from
2128: a fresh checkout of the full OpenBSD source tree.
2129: </section>
2130:
2131: <hr>
2132:
2133: <section id=ports>
2134: <h3>Ports Tree</h3>
2135: <p>
2136: A ports tree archive is also provided. To extract:
2137: <blockquote><pre>
2138: # <kbd>cd /usr</kbd>
2139: # <kbd>tar xvfz /tmp/ports.tar.gz</kbd>
2140: </pre></blockquote>
2141: <p>
2142: Go read the <a href="faq/ports/index.html">ports</a> page
2143: if you know nothing about ports
2144: at this point. This text is not a manual of how to use ports.
2145: Rather, it is a set of notes meant to kickstart the user on the
2146: OpenBSD ports system.
2147: <p>
2148: The <i>ports/</i> directory represents a CVS checkout of our ports.
2149: As with our complete source tree, our ports tree is available via
2150: <a href="anoncvs.html">AnonCVS</a>.
2151: So, in order to keep up to date with the -stable branch, you must make
2152: the <i>ports/</i> tree available on a read-write medium and update the tree
2153: with a command like:
2154: <blockquote><pre>
2155: # <kbd>cd /usr/ports</kbd>
2156: # <kbd>cvs -d anoncvs@server.openbsd.org:/cvs update -Pd -rOPENBSD_6_9</kbd>
2157: </pre></blockquote>
2158: <p>
2159: [Of course, you must replace the server name here with a nearby anoncvs
2160: server.]
2161: <p>
2162: Note that most ports are available as packages on our mirrors. Updated
2163: ports for the 6.9 release will be made available if problems arise.
2164: <p>
2165: If you're interested in seeing a port added, would like to help out, or just
2166: would like to know more, the mailing list
2167: <a href="mail.html">ports@openbsd.org</a> is a good place to know.
2168: </section>