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

OpenBSD/src Cmgumhv — regress/lib/libexpat/runtests Makefile

   libexpat 2.10.0 has new test files to build
VersionDeltaFile
1.7+2-1regress/lib/libexpat/runtests/Makefile
+2-11 files

OpenBSD/src HkPVvKO — lib/libexpat Changes, lib/libexpat/lib entities.h xmlparse.c

   Update libexpat to version 2.10.0

   Relevant for OpenBSD are security fixes #1431 #1433 #1436 #1438
   #1439 #1442 #1444 #1450, bug fixes #1452 #1458 #1461 #1467, other
   changes #1413 #1415 #1437 #1417 #1463 #1420 #1449 #1453 #1432.
   Library bump is not necessary.
   CVE-2026-113351 CVE-2026-115506 CVE-2026-117610 CVE-2026-118370

   OK tb@
VersionDeltaFile
1.56+732-139lib/libexpat/lib/xmlparse.c
1.1+250-0lib/libexpat/tests/entities_tests.c
1.18+180-1lib/libexpat/tests/misc_tests.c
1.1+99-0lib/libexpat/lib/entities.h
1.44+89-0lib/libexpat/Changes
1.18+49-14lib/libexpat/tests/basic_tests.c
+1,399-15419 files not shown
+1,605-16825 files

OpenBSD/src HsLalsc — sys/dev/isa isadma.c

   Remove unused isa_dmamap_destroy().
VersionDeltaFile
1.40+1-26sys/dev/isa/isadma.c
+1-261 files

OpenBSD/src NPTmhw4 — sys/netinet6 ip6_mroute.c

   Remove mrt6_mrouter_ver since it is unused and will never be used.

   Our MRT6 code has no compat fallback for the old (> 25year) mrt6msg
   format. We only use the fixed version with the alignment fix.
   So there is no need to track mrt6_mrouter_ver since it is always MRT6_INIT
   and that will never change. So burn this bridge for good.

   OK bluhm@
VersionDeltaFile
1.160+5-16sys/netinet6/ip6_mroute.c
+5-161 files

OpenBSD/src xDHnRG0 — sys/arch/amd64/amd64 machdep.c, sys/arch/i386/i386 machdep.c

   fallback to PCI reset on x86

   Attempt system reset with writes to a memory region used for PCI.
   Both Intel and AMD document reset at the 0xcf9 address.

   Adapted from FreeBSD by Gert-Jan Vons to fix reset on a
   Fujitsu Futro S940.

   ok deraadt@
VersionDeltaFile
1.682+17-1sys/arch/i386/i386/machdep.c
1.315+17-1sys/arch/amd64/amd64/machdep.c
+34-22 files

OpenBSD/src yqAkRq0 — sys/dev/ic nvme.c

   Don't free the io queue memory when suspending, so it doesn't have to be
   reallocated on resume.  This removes a potential sleep point in the resume
   path.   The queue is still recreated on the controller, so its software state
   has to be reset instead.

   ok dlg@ deraadt@
VersionDeltaFile
1.132+4-10sys/dev/ic/nvme.c
+4-101 files