OpenBSD/src CfFeeFH — etc/etc.amd64 MAKEDEV, etc/etc.arm64 MAKEDEV

   replace login_fbtab with the wscons group if the users is on the glass console

   Historically login_fbtab(3) was called on user login to change permission
   of devices for the user logging in on the console or xdm and this mechanism
   had its quirks.

   In in effort to make this better, introduce the LOGIN_SETWSCONSGROUP flag for
   setusercontext(3), which will append the special wscons group to a user context
   if the user is logging in on the "glass" console.

   Callers of setusercontex(3) can also use the new login_wscons(const char *tty)
   libutil function to determine if the tty is appropriate for setting the group.

   The last part of this commit also changes the device node entries so that the
   wscons group has write access to a specific list of devices that were previously
   handled by fbtab, e.g. for amd64 (for other arches it might differ):

        /dev/console
        /dev/wskbd

    [14 lines not shown]
VersionDeltaFile
1.1+30-0lib/libutil/login_wscons.c
1.52+22-3lib/libc/gen/login_cap.c
1.228+10-10etc/etc.sparc64/MAKEDEV
1.19+10-10etc/etc.riscv64/MAKEDEV
1.38+10-10etc/etc.arm64/MAKEDEV
1.154+10-10etc/etc.amd64/MAKEDEV
+92-4345 files not shown
+210-17851 files

OpenBSD/src 0zmCPyF — lib/libcrypto/x509 x509_purp.c

   Reject certificates that are not v3

   X509 v1 is bloody ancient. we continue to have nasty things lurking
   as corner cases to support it when there is really no need to.

   Sadly, it has been kept around for ages for "roots" because of people
   with old tests and nonsense that were generated for v1.  v3 is required
   by any modern certs.

   Rather than supporting "tests" that aren't really testing what the real
   world uses, stop the madness.

   x509v3_cache_extensions marks any certificate whose version is not v3
   invalid, so v1 and v2 certificates fail verification and purpose checks.

   This may break tests suites generated with old junk. (we had one in
   tree that I fixed before this).

   We will see if this change is too painful to support in ports right now.

    [4 lines not shown]
VersionDeltaFile
1.49+2-2lib/libcrypto/x509/x509_purp.c
+2-21 files

OpenBSD/src GWrKweU — lib/libcrypto/x509 x509_purp.c

   Ignore the Netscape certificate type extension

   The 90's were amazing, but this is well past time to let it go.

   x509v3_cache_extensions no longer reads nsCertType, so it no longer
   makes a certificate a CA or restricts its purposes.  A critical
   nsCertType is now an unhandled critical extension.

   This is only an initial defang, code removal for this will follow

   ok tb@
VersionDeltaFile
1.48+1-14lib/libcrypto/x509/x509_purp.c
+1-141 files

OpenBSD/src izefJjx — regress/lib/libcrypto/cms cmstest.c

   Reissue the cmstest CA and signer certificates as v3

   ok tb@
VersionDeltaFile
1.9+33-31regress/lib/libcrypto/cms/cmstest.c
+33-311 files

OpenBSD/src BV9lBTQ — usr.bin/openssl req.c x509.c

   Make openssl(1) always issue v3 certificates

   change req -x509, x509 -req and ca to make every certificate they issue v3,
   instead of issuing v1 when no extensions are configured.

   openssl changed this visit from the bad idea bears back in 3.0 and we
   never picked it up.

   ok tb@
VersionDeltaFile
1.66+3-8usr.bin/openssl/ca.c
1.45+5-5usr.bin/openssl/x509.c
1.30+2-4usr.bin/openssl/req.c
+10-173 files

OpenBSD/src xZTZ0F0 — sys/dev/ic aic79xx.c

   Restrict DMA map segments to MAXPHYS to prevent allocating too much memory
   for bounce buffers.

   ok deraadt@
VersionDeltaFile
1.71+2-2sys/dev/ic/aic79xx.c
+2-21 files

OpenBSD/src PfeZfc9 — share/man/man4 em.4, sys/dev/pci if_em_hw.h if_em.c

   em(4): indicate whether the BMC is reachable

   with tweaks from henning@ and deraadt@

   ok deraadt@
VersionDeltaFile
1.56+19-2share/man/man4/em.4
1.386+11-1sys/dev/pci/if_em.c
1.104+2-1sys/dev/pci/if_em_hw.h
+32-43 files

OpenBSD/src BFfzcvl — sys/dev/pci if_em.c

   Keep the descriptor rings allocated in DVACT_SUSPEND, so that they are
   still available in DVACT_RESUME.  This is neccessary because DVACT_RESUME
   cannot sleep during this new allocation.
   ok jan
VersionDeltaFile
1.385+35-23sys/dev/pci/if_em.c
+35-231 files

OpenBSD/src fgZwU8f — usr.bin/vacation vacation.c

   Add some option-dependent pledge with unveil deferred until we can do it.
   millert suggests we test this in the user commnity ;)
VersionDeltaFile
1.40+26-8usr.bin/vacation/vacation.c
+26-81 files

OpenBSD/src ez9BN1Q — etc group

   add a wscons group to be used by logins on the "glass" console
VersionDeltaFile
1.105+1-0etc/group
+1-01 files

OpenBSD/src TMlWGIu — sys/netinet ip_mroute.c

   Retire mrt_count which is only used to prevent MRT_API_CONFIG once
   multicast is already going.

   MRT_API_CONFIG must be called right after MRT_INIT and it should only work
   then. The moment a VIF or MFC is added MRT_API_CONFIG needs to fail.
   Implement this with a mrt_api_locked variable that is toggled in the
   setsockopt calls. This way MRT_API_CONFIG can be simplified and the
   somewhat problematic mrt_count can be removed.

   It seems nothing really uses MRT_API_CONFIG so we can be super strict
   here and only allow it on the first call after MRT_INIT and so
   mrt_api_locked is toggled even if the setsockopt command failed.

   OK bluhm@
VersionDeltaFile
1.156+10-28sys/netinet/ip_mroute.c
+10-281 files

OpenBSD/src k62ZphM — lib/libc/asr asr_utils.c

   off-by-one in unpack_dname can smash 1 extra byte.
   from Acts1631
   ok otto florian millert
VersionDeltaFile
1.24+2-2lib/libc/asr/asr_utils.c
+2-21 files

OpenBSD/src 6qZ0AfQ — lib/libz gzlib.c gzwrite.c, sys/lib/libz inflate.c deflate.c

   Backport security fixes from zlib 1.4

   From the 9 security fixes listed in
   https://github.com/madler/zlib/releases/tag/v1.4
   we already have the fix for CVE-2026-85091 in 8.0.

   The remaining 8 of these are cherry-picked here for userland, 6 of which
   also affect the kernel. That required a bit of fiddling due to our patches
   (#ifdef SMALL, size for ZFREE in the kernel).

   There is an oob write of 32k and various other oob accesses, some info
   leaks and a cloexec carelessness.

   looks good to deraadt

   In detail this is:

   deflate.c, hunks 1 and 2:


    [109 lines not shown]
VersionDeltaFile
1.25+25-8sys/lib/libz/deflate.c
1.32+25-8lib/libz/deflate.c
1.30+12-4sys/lib/libz/inflate.c
1.26+12-4lib/libz/inflate.c
1.8+5-0lib/libz/gzwrite.c
1.13+2-2lib/libz/gzlib.c
+81-262 files not shown
+81-308 files

OpenBSD/src 8FjzEsg — regress/usr.bin/patch Makefile

   add a regress test for long context lines

   the actualy bug was fixed in 2023 by tb@
VersionDeltaFile
1.17+18-4regress/usr.bin/patch/Makefile
+18-41 files

OpenBSD/src jeMJItL — lib/libcrypto/ec ec_curve.c

   Remove the byte copies of the built-in curve parameters

   The built-in curve parameters are now in two places, in ec_curve.c
   as byte strings and in ec_curve_tables.h as the static groups.

   ec_curve_list now holds only each curve's comment, NID and static
   group. ec_group_is_builtin_curve() compares a group with the static
   groups using EC_GROUP_cmp() and the seed, instead of comparing byte
   encodings.

   ok tb@
VersionDeltaFile
1.62+28-1,207lib/libcrypto/ec/ec_curve.c
+28-1,2071 files

OpenBSD/src sSRdAjy — regress/usr.bin/patch Makefile

   align
VersionDeltaFile
1.16+3-2regress/usr.bin/patch/Makefile
+3-21 files

OpenBSD/src 8raGOdB — lib/libcrypto/ec ec_local.h ec_lib.c, regress/lib/libcrypto/ec Makefile ec_builtin_test.c

   Make the built-in EC groups copies of static templates

   So while beating on the cost of decoding X509 certificates and
   attempting to find out where things were expensive. P256 lept out
   and bit me. It was appallingly slower to deal with a P256 public
   key than other things. and it was dominating the cost of an X509
   parse, due to it rolling the group from scratch, every time.

   Building a built-in group at runtime was most of the cost of decoding
   an EC key, which hits every EC key in libcrypto and libssl, including
   certificate keys and ECDHE.

   So of course I looked at Boring, which made everything static.

   EC_GROUP_new_by_curve_name() now copies a static EC_GROUP whose curve
   parameters, Montgomery context and generator are precomputed constants
   shared by every copy. The constants have 64-bit and 32-bit word
   versions. EC_GROUP_free() leaves the shared data alone, EC_GROUP_dup()
   of a built-in group copies only the group itself, and

    [28 lines not shown]
VersionDeltaFile
1.1+2,191-0lib/libcrypto/ec/ec_curve_tables.h
1.1+1,290-0regress/lib/libcrypto/ec/ec_builtin_test.c
1.61+21-111lib/libcrypto/ec/ec_curve.c
1.133+40-13lib/libcrypto/ec/ec_lib.c
1.75+11-1lib/libcrypto/ec/ec_local.h
1.14+8-1regress/lib/libcrypto/ec/Makefile
+3,561-1261 files not shown
+3,563-1287 files

OpenBSD/src IVfhw0T — lib/libssl ssl_local.h tls_internal.h

   Return a real X25519 key from SSL_get_peer_tmp_key()

   The X25519 peer temporary key was a dummy EC_KEY. It was made by taking
   a P-256 group from EC_GROUP_new_by_curve_name(), overwriting its
   generator and order, and renaming it NID_X25519. It held no public key,
   so callers could get only a name from it. It also modified a built-in
   group, which gets in the way of making built-in groups immutable.

   Return an EVP_PKEY_X25519 holding the peer's public key instead, now
   that X25519 has an EVP_PKEY type. The internal tls_key_share_peer_pkey()
   now allocates the EVP_PKEY it returns

   ok tb@
VersionDeltaFile
1.16+1-40lib/libssl/ssl_kex.c
1.13+24-9lib/libssl/tls_key_share.c
1.267+2-4lib/libssl/s3_lib.c
1.12+2-2lib/libssl/tls_internal.h
1.50+1-2lib/libssl/ssl_local.h
+30-575 files

OpenBSD/src 9FANW5R — usr.sbin/smtpd lka.c

   simplify casting around lka_addrname usage; suggested by tb@

   no .text changes
VersionDeltaFile
1.254+6-8usr.sbin/smtpd/lka.c
+6-81 files

OpenBSD/src hsN7kQ6 — lib/libc/asr gethostnamadr_async.c

   when getnetby*(3) family were refactored by schwarze in 2018 as a
   wrapper on gethostby*(3), the ip address in the structure was
   mistakenly considered a pointer to an ip address, and a dereference
   was attempted.  The long survival of this bug tells us that
   getnetby*(3) is used extremely rarely.  In fact it was noticed by
   afresh1@ on a strict-alignment architecture which inspected a HOST
   with an odd ip address (byte order can also matter)
   ok millert
VersionDeltaFile
1.56+4-4lib/libc/asr/gethostnamadr_async.c
+4-41 files

OpenBSD/src E9MvQOr — regress/usr.bin/patch Makefile fetchname.c

   add some tests for fetchname()

   tests originally written by kirill@; the unholy parts are mine.
VersionDeltaFile
1.1+104-0regress/usr.bin/patch/fetchname.c
1.15+17-3regress/usr.bin/patch/Makefile
+121-32 files

OpenBSD/src YRrn6FP — libexec/ld.so/hppa rtld_machine.c

   ld.so/hppa: skip RELOC_NONE in the hppa fast path

   OK: deraadt@
VersionDeltaFile
1.46+6-2libexec/ld.so/hppa/rtld_machine.c
+6-21 files

OpenBSD/src 9Ji5UfF — sys/uvm uvm_vnode.c

   u_obj.uo_refs must be managed using atomic_inc_int_nv() and friends
   or the reference counting and inspection can evaluate incorrect.
   This affecs kbind.
   ok claudio, krw
   diff from openai
VersionDeltaFile
1.153+10-12sys/uvm/uvm_vnode.c
+10-121 files

OpenBSD/src UkMcHjr — share/man/man7 securelevel.7

   securelevel 2 doesn't try to prevent pf ruleset changes any more
VersionDeltaFile
1.33+2-5share/man/man7/securelevel.7
+2-51 files

OpenBSD/src Fjol6Gn — sys/net pf_ioctl.c

   stop trying to refuse a whole bunch of ioctls when securelevel > 1, which
   was advertised as "pf filter and NAT rules may not be altered" - however,
   there are numerous other ways, like turning pf of per-interface using set
   skip, removing/adding interfaces from/to groups etc etc etc
   root is root, period. pf doesn't have anything securelevel-dependent now.
   "set skip" reported by acts1631kjv at proton
   support deraadt, ok sashan claudio sthen
VersionDeltaFile
1.437+1-57sys/net/pf_ioctl.c
+1-571 files

OpenBSD/src voqKlAs — usr.sbin/snmpd snmpd.h

   Remove sc_traphandler. It hasn't been in use for a long time.
VersionDeltaFile
1.130+1-2usr.sbin/snmpd/snmpd.h
+1-21 files

OpenBSD/src 1I2h3Wp — usr.sbin/snmpd snmpd.h snmpe.c

   Remove sm_transactionid. This was originally intended to hook messages to
   when sending requests to AgentX backends, but this functionality ended up
   fully in application.c.

   OK op@
VersionDeltaFile
1.100+1-19usr.sbin/snmpd/snmpe.c
1.129+1-9usr.sbin/snmpd/snmpd.h
+2-282 files

OpenBSD/src ca2bhxV — usr.sbin/snmpd snmpd.h application.c

   Cap getbulk max-repetitions to 50.

   Pointed out by acts1631
   OK sthen@
VersionDeltaFile
1.47+4-1usr.sbin/snmpd/application.c
1.128+2-1usr.sbin/snmpd/snmpd.h
+6-22 files

OpenBSD/src vRfvg8k — usr.sbin/snmpd snmpe.c

   Disallow noAuthPriv messages. This is an invalid flag combination.

   From acts1631
   OK sthen@
VersionDeltaFile
1.99+5-1usr.sbin/snmpd/snmpe.c
+5-11 files

OpenBSD/src 1xlCGmg — share/man/man4 ure.4, sys/dev/usb if_urereg.h if_ure.c

   sys/ure: use and load firmware from rge

   both RTL8157 and RTL8159 can use the same firmware from RTL8126-2 and
   RTL8127 with some gule.

   OK: kevlo@
VersionDeltaFile
1.39+1,044-5sys/dev/usb/if_ure.c
1.16+38-1sys/dev/usb/if_urereg.h
1.13+11-7share/man/man4/ure.4
+1,093-133 files