OpenBSD/src 578VLTvusr.bin/ssh misc.h sftp-client.h

   Add '-p' to sftp mkdir/lmkdir to create directories as required

   The -p option causes the mkdir and lmkdir commands to create any missing
   intermediate directories. If '-p' is specified, it is not considered an
   error if a directory already exists.

   With / OK djm@
VersionDeltaFile
1.258+43-6usr.bin/ssh/sftp.c
1.216+48-1usr.bin/ssh/misc.c
1.187+34-1usr.bin/ssh/sftp-client.c
1.145+18-4usr.bin/ssh/sftp.1
1.42+4-1usr.bin/ssh/sftp-client.h
1.117+2-1usr.bin/ssh/misc.h
+149-146 files

OpenBSD/src aNVx7ndusr.sbin/smtpd smtpd.c

   execvp(3) against a constant absolute path is not needed, use execv(3)
   instead.
VersionDeltaFile
1.363+2-2usr.sbin/smtpd/smtpd.c
+2-21 files

OpenBSD/src IFuuja4usr.sbin/tcpdump privsep.h privsep.c

   Use getexecpath(3) and thus execv(3) in the same way as other privsep
   fork+execsame daemons.
VersionDeltaFile
1.61+4-4usr.sbin/tcpdump/privsep.c
1.101+5-3usr.sbin/tcpdump/tcpdump.c
1.13+1-1usr.sbin/tcpdump/privsep.h
+10-83 files

OpenBSD/src BIlLgcjusr.sbin/relayd relayd.h relayd.c

   use getexecpath(3) and execv(3)
   ok rsadowski
VersionDeltaFile
1.62+9-9usr.sbin/relayd/proc.c
1.209+6-2usr.sbin/relayd/relayd.c
1.296+2-2usr.sbin/relayd/relayd.h
+17-133 files

OpenBSD/src eg6llgcusr.sbin/rpki-client cms.c

   rpki-client: expand explanatory comment for CMS_verify() slightly
VersionDeltaFile
1.66+3-2usr.sbin/rpki-client/cms.c
+3-21 files

OpenBSD/src Kp3nvnxusr.bin/tmux cmd-find.c

   Error on invalid relative targets, such as +foo or -0. GitHub issue 5576
   from imcusg at gmail dot com.
VersionDeltaFile
1.88+11-7usr.bin/tmux/cmd-find.c
+11-71 files

OpenBSD/src FXCBDAGusr.bin/tmux monitor.c

   Do not silently make a session monitor if the target is unknown, GitHub
   issue 5575 from zzchun12826 at gmail dot com.
VersionDeltaFile
1.8+4-2usr.bin/tmux/monitor.c
+4-21 files

OpenBSD/src cOx0yUuusr.sbin/relayctl relayctl.c

   relayctl: rename "empty" to "unavailable" in table status

   The word empty suggested the table has no hosts configured. It really means
   the table has no hosts currently up, so unavailable describes the state more
   clearly.

   OK kirill@
VersionDeltaFile
1.68+2-2usr.sbin/relayctl/relayctl.c
+2-21 files

OpenBSD/src CcztDyWusr.sbin/rpki-client cms.c

   rpki-client: split a large chunk of cms_parse_validate() into a helper

   There is a huge messy part in the CMS validation code that deals with
   things needing the SignerInfo (the OpenSSL version of it, that is).
   All this stuff does not need cleanup at exit and is very long, boring
   and meandering code which is concerned with requirements from RFC 6488
   which are largely independent of the econtent validation and parsing.

   So pull all this into a helper and pass in the few things we need.
   The only info we want to retain is that the object is well-formed and
   its signtime. Since we need to pass in the cert, we call the helper
   after extraction and before validation of the signtime against the cert.

   The main point is that cms_parse_validate() finally becomes somewhat
   manageable in size.

   ok job
VersionDeltaFile
1.65+84-74usr.sbin/rpki-client/cms.c
+84-741 files

OpenBSD/src 1enaFsUlib/libpcap savefile.c pcap-int.h, sys/net if_ppp.c bpf.h

   Add proper program bound checks to the bpf engine

   Introduce new bpf functions _bpf_lfilter and bpf_lfilter which properly
   bound check the bpf program and ensure that no jump instruction goes
   out of bound. The old bpf_filter and _bpf_filter functions pass a len of
   zero and bypass the bound checks.

   In the kernel bpf_mfilter now uses the bpf_program (which includes the len)
   and by that all calls are bounded.
   In userland pcap_offline_filter uses now bpf_lfilter and is bounded.
   Direct calls to bpf_filter and _bpf_filter don't do bound checking and
   should no longer be used. These functions will be removed from our libpcap
   soon.

   Fix for libpcap CVE-2026-31912.
VersionDeltaFile
1.40+78-17sys/net/bpf_filter.c
1.237+15-9sys/net/bpf.c
1.77+9-3sys/net/bpf.h
1.123+5-5sys/net/if_ppp.c
1.15+8-1lib/libpcap/pcap-int.h
1.19+3-4lib/libpcap/savefile.c
+118-391 files not shown
+121-417 files

OpenBSD/src dNjCqYglib/libpcap optimize.c, sys/net bpf_filter.c

   Fix various minor things in our bpf implementation

   In userland it is possible to call bpf_filter / pcap_offline_filter
   with unverified bpf programs. Because of this harden bpf_filter further
   by adding the following extra checks:

   - Ensure that load and store operations to the scratch memory store are
   always bound checked.
   - Ensure that no division or modulo by zero is done.
   - No longer do shift operations with a too large shift exponent. Instead
   zero out the result.
   - No longer call abort on unknown instructions when bpf_filter is run
   in userland. Use the same return 0 as is already done in the kernel.

   On top of this ensure that no unhandled instruction encoding makes it
   through bpf_validate by using the same case handling as bpf_filter.

   This are fixes for libpcap CVE-2026-0799, CVE-2026-6244, CVE-2026-6554,
   CVE-2026-31911.  None of the above CVEs are applicable to or kernel since

    [2 lines not shown]
VersionDeltaFile
1.39+74-17sys/net/bpf_filter.c
1.24+7-3lib/libpcap/optimize.c
+81-202 files

OpenBSD/src Wrxbn5llib/libfido2/src hid_openbsd.c

   libfido2: recovery hardcoded USB metadata

   OK: djm@
VersionDeltaFile
1.10+8-21lib/libfido2/src/hid_openbsd.c
+8-211 files

OpenBSD/src XHFRGF1lib/libc/gen getexecpath.c

   remove unused local variable; ok deraadt@
VersionDeltaFile
1.2+1-3lib/libc/gen/getexecpath.c
+1-31 files

OpenBSD/src JK3rSFTusr.sbin/relayd relayd.h

   correct relay_httpmethod_byname() prototype

   return type is enum httpmethod not u_int
VersionDeltaFile
1.295+2-2usr.sbin/relayd/relayd.h
+2-21 files

OpenBSD/src w6NXe9Husr.sbin/httpd httpd.h

   correct server_httpmethod_byname() prototype

   return type is enum httpmethod not unsigned int
VersionDeltaFile
1.183+2-2usr.sbin/httpd/httpd.h
+2-21 files

OpenBSD/src oQb6T1busr.sbin/acme-client extern.h

   correct json_parse_response() prototype

   return type changed from int to enum chngstatus in json.c rev 1.11
VersionDeltaFile
1.25+2-2usr.sbin/acme-client/extern.h
+2-21 files

OpenBSD/src IrzHAzishare/misc airport

   Add Gimli, Manitoba, site of the Gimli Glider landing.
VersionDeltaFile
1.111+2-1share/misc/airport
+2-11 files

OpenBSD/src JmRzD7Hsys/uvm uvm_aobj.c

   sys/uvm: validate anonymous object pager requests

   uao_get() trusts the requested page range before allocating pages and
   looking up swap slots; an invalid request can therefore allocate a page
   outside the object and read beyond its swap slot array. Validate the
   request before page lookup or allocation, preserving optional fault
   clustering at the object boundary.

   Reject nonpositive page counts and starting page indices outside the
   object; require the entire range for PGO_ALLPAGES, or a centeridx within
   both the request and the object otherwise. Compare against the remaining
   page count in voff_t and derive pageidx from the validated firstpage,
   avoiding overflow in the bounds check and unchecked narrowing.

   Reported by Andrew Griffiths, thanks!

   OK: kettenis@
VersionDeltaFile
1.123+36-3sys/uvm/uvm_aobj.c
+36-31 files

OpenBSD/src AoC7R4Ysys/arch/arm64/arm64 genassym.cf hibernate_machdep.c, sys/arch/arm64/include cpu.h

   Fix resuming the secondary CPUs when resuming from hibernation.  Like on
   amd64, park the CPUs before unpacking the hibernate image.  On arm64 we
   park the CPUs somewhere safe in the kernel.  When we unpark the CPUs,
   we need to locate its struct cpu_info and stack as these are dynamically
   allocated and the booted kernel may have allocated them in a different
   location.

   ok deraadt@
VersionDeltaFile
1.52+52-1sys/arch/arm64/arm64/locore.S
1.152+26-1sys/arch/arm64/arm64/cpu.c
1.2+10-3sys/arch/arm64/arm64/hibernate_machdep.c
1.57+3-1sys/arch/arm64/include/cpu.h
1.11+3-1sys/arch/arm64/arm64/genassym.cf
+94-75 files

OpenBSD/src vYMzXkPsys/dev/ic ufshci.c

   Add some memory barriers to make writing out the hibernate image work
   on the Radxa Dragon Q6A.  Moving forward we really need a side-effect free
   bus_dmamap_sync(9), but a memory barrier will do the job as long as the
   hardware has cache-coherent DMA.

   ok mglocker@
VersionDeltaFile
1.49+7-1sys/dev/ic/ufshci.c
+7-11 files

OpenBSD/src vkCcGp8sys/arch/arm64/dev aplns.c, sys/dev/ic nvme.c

   Make a failure to allocate a dedicated queue for hibernat support
   non-fatal.

   ok deraadt@, mglocker@
VersionDeltaFile
1.21+11-12sys/arch/arm64/dev/aplns.c
1.130+6-4sys/dev/ic/nvme.c
+17-162 files

OpenBSD/src ra1rbwQgnu/llvm/llvm/lib/Support/Unix Path.inc

   Use getexecpath(3).  Since this is crucial build tooling, if getexecpath(3)
   fails, fallback to the old method in case someone tries to build on an old
   system.  Future clang updates should not contain this fallback code chunk.
   ok kettenis
VersionDeltaFile
1.2+540-162gnu/llvm/llvm/lib/Support/Unix/Path.inc
+540-1621 files

OpenBSD/src anadzivusr.sbin/snmpd snmpd.h snmpd.c

   Replace argv[0] with execvp(3) for fork+exec privsep with getexecpath(3)
   and execv(3).
VersionDeltaFile
1.46+8-8usr.sbin/snmpd/proc.c
1.55+7-4usr.sbin/snmpd/snmpd.c
1.125+2-2usr.sbin/snmpd/snmpd.h
+17-143 files

OpenBSD/src HAwwZ17usr.sbin/radiusd radiusd_file.c radiusd_bsdauth.c

   Replace argv[0] with execvp(3) for fork+exec privsep with getexecpath(3)
   and execv(3).
VersionDeltaFile
1.22+11-8usr.sbin/radiusd/radiusd_bsdauth.c
1.10+10-8usr.sbin/radiusd/radiusd_file.c
+21-162 files

OpenBSD/src wx3BHVPusr.sbin/lpd proc.h proc.c

   Replace argv[0] with execvp(3) for fork+exec privsep with getexecpath(3)
   and execv(3).
   (this lpd is an incomplete replacement which has never been finished, but
   maybe eventually someone will finish it...)
VersionDeltaFile
1.4+13-8usr.sbin/lpd/lpd.c
1.9+4-4usr.sbin/lpd/proc.c
1.2+2-2usr.sbin/lpd/proc.h
+19-143 files

OpenBSD/src CFBdKpEusr.sbin/ldapd ldapd.c, usr.sbin/ldpd ldpd.c

   Replace argv[0] with execvp(3) for fork+exec privsep with getexecpath(3)
   and execv(3).
VersionDeltaFile
1.83+12-13usr.sbin/ldpd/ldpd.c
1.33+9-10usr.sbin/ldapd/ldapd.c
+21-232 files

OpenBSD/src obFaln4sbin/pflogd pflogd.h privsep.c

   Replace argv[0] with execvp(3) for fork+exec privsep with getexecpath(3)
   and execv(3).
VersionDeltaFile
1.68+7-2sbin/pflogd/pflogd.c
1.36+4-4sbin/pflogd/privsep.c
1.9+2-2sbin/pflogd/pflogd.h
+13-83 files

OpenBSD/src MAMLo8Cusr.sbin/authpf authpf.c

   authpf executes absolute-path /sbin/pfctl with execvp(3).  Use execv(3)
   instead.
VersionDeltaFile
1.132+2-2usr.sbin/authpf/authpf.c
+2-21 files

OpenBSD/src FhO0POMsbin/dhcp6leased dhcp6leased.c, sbin/dhcpleased dhcpleased.c

   Use getexecpath(3) in florian's privsep fork+exec daemons.  These programs
   are normally started from rc(8) which provides absolute-paths, so these
   daemons were trusting argv[0] to be safe, unlike the paranoid behaviour in
   sshd(8). If the daemon is started manually without absolute-path, execvp(2)
   was being used which walks $PATH (includes /sbin and /usr/sbin) and it works
   but isn't ideal.  Since getexecpath(3) now always provides a
   realpath(3)-style canonicalized absolute path, execv(2) can be used instead.
VersionDeltaFile
1.42+12-12usr.sbin/rad/rad.c
1.80+11-11sbin/unwind/unwind.c
1.85+10-11sbin/slaacd/slaacd.c
1.48+10-11sbin/dhcpleased/dhcpleased.c
1.24+10-11sbin/dhcp6leased/dhcp6leased.c
+53-565 files

OpenBSD/src AnfqX6rusr.bin/ssh sshd.c

   Use getexecpath(3); if it fails use argv[0] as before with the pre-existing
   code to validate it is an absolute path.  Here's a bit of history:  sshd
   became the first fork+exec privsep daemon (I did some arm-twisting).
   That privsep has recently turned into fork+exec different binaries but
   the SIGHUP restart code still want to re-run the binary from the original path.
   The rc startup sequence always passes an absolute path.  sshd was paranoid
   and validated it.  That made hand-restarts of sshd without absolute paths
   not work.  getexecpath(3) improves the ergonomics.
   ok djm
VersionDeltaFile
1.629+13-4usr.bin/ssh/sshd.c
+13-41 files