Verifying Build Artifacts

The HardenedBSD build artifacts are signed with an SSH key. SSH keys are used so that artifacts can be validated using only tools included in the base operating system.

First, download the SSH public key:


$ fetch https://installers.hardenedbsd.org/pub/keys/ssh.pub.txt

Then download the build artifact. For purposes of this documentation, the
compressed memstick installation image for HardenedBSD 14-STABLE will be used.


$ fetch https://installers.hardenedbsd.org/pub/14-stable/amd64/amd64/installer/LATEST/memstick.img.xz
$ fetch https://installers.hardenedbsd.org/pub/14-stable/amd64/amd64/installer/LATEST/memstick.img.xz.sig

Next, generate an `allowed_signers` file which contains the SSH public key:


$ echo "hbsd-os-build-01 $(cat ssh.pub.txt)" > allowed_signers

Now the signature file can be verified:


$ ssh-keygen -Y verify -f allowed_signers -I hbsd-os-build-01 -n file -s memstick.img.xz.sig < memstick.img.xz

HardenedBSD installers

16-CURRENT
git git clone https://rad.hardenedbsd.org/z2HLHXgL1xevBNQsf8BmQW7MpJmtm.git HardenedBSD-current
Radicle rad clone rad:z2HLHXgL1xevBNQsf8BmQW7MpJmtm; cd HardenedBSD-src
installers https://installers.hardenedbsd.org/pub/current/
15-STABLE
git git clone --single-branch --branch hardened/15-stable/main https://rad.hardenedbsd.org/z2HLHXgL1xevBNQsf8BmQW7MpJmtm.git HardenedBSD-15-stable
Radicle rad clone rad:z2HLHXgL1xevBNQsf8BmQW7MpJmtm; cd HardenedBSD-src; git checkout -b hardened/15-stable/main rad/hardened/15-stable/main
installers https://installers.hardenedbsd.org/pub/15-stable/
PORTS
git git clone https://rad.hardenedbsd.org/z2XrdvALg77ycnuZRXgScb27yb3wM.git HardenedBSD-ports
tar.gz

fetch -o hardenedbsd-ports.tar.gz https://rad.hardenedbsd.org/raw/rad:z2XrdvALg77ycnuZRXgScb27yb3wM/archiv...

HardenedBSD August / September 2026 Status Report

I'm writing this status report a little early because this coming week (the week of the 28th of September 2026) is HardenedBSD quarterly release engineering week. On that note, I plan to cherry-pick a few "commits that smell like security" that FreeBSD recently made against their main branch into our 15-stable branch. I suspect over the next week or two, we might see a FreeBSD Security Advisory and/or Errata Notice.

In src:

  1. Explicitly dissuade from pkgbase use (in bsdinstall)
  2. Update /etc/os-release and /var/run/os-release
  3. Enable -ftrivial-var-auto-init=zero for video(4)
  4. fix links in usr.bin/login/motd.template
  5. Document rejection of AI/LLM/etc generated works
  6. fix broken references in hardening(4) man page
  7. Harden ssh_config(5) by disabling compression and TCP keepalives by default
  8. Integrate -fbounds-safety in world with MK_BOUNDS_SAFETY, disabled by default
    • The flag is still experimental, so it's actually spelled `-Xclang -fexperimental-bounds-safety`

In Ports:

  1. Fix broken dependency for math/libformfactor

I'd like to chat a little bit about -fbounds-safety. This feature is not used anywhere in the base OS. And, the feature is currently disabled by default in HardenedBSD. However, adding the plumbing will allow folks downstream from us to more easily integrate that feature on their end. Folks building things with HardenedBSD can more easily use this experimental feature in their own code. Right now, we only integrated the flag with userland. Once the clang/llvm folks consider the feature production-ready, I'll duplicate the logic to apply to the
kernel and kernel modules.

I view it similar to Capsicum: it requires direct integration in the project's codebase. These approaches tend to feel heavy-handed to me. However, providing the plumbing in HardenedBSD will enable others to make the decision for themselves on whether (and where) it makes sense to adopt.

Infrastructure:

I applied updates across our infrastructure. I migrated two environments from VMs to jails: rad.hardenedbsd.org and ngx-01. We had issues the first 48 hours or so after the migration of both VMs to separate jails. This has drastically helped, though there are still latent issues.

Please let me know if you have trouble browsing our Radicle node[1]. We are still experiencing (much) higher than normal traffic, so due to our throttling, browsing our Radicle web interface may require hitting Refresh occasionally.

The next VM I plan to migrate to a jail is our rsync VM. I plan to do that after the next quarterly builds complete and are fully synced to our various mirrors. After rsync, I plan to modernize our Tor Onion Service endpoints.

I also enhanced our auto-sync program to support pushing to multiple remotes. In related news, syncing to GitHub is now supported once again. So if running a local Radicle node isn't your thing, you can reference our src and ports repos on GitHub. As of now, there are no plans to mirror to GitHub our auxiliary projects (hbsdmon, libhijack, vm-bhyve-hbsd, etc.

Given that the sync to GitHub happens when we perform our autosync (every six hours), there can be some delay between when direct commits land in the Radicle network and are subsequently mirrored to GitHub. My long-term plan is to write an orchestration daemon in Rust that communicates directly with the Radicle node via its control socket. It'll take action on the messages it sees on that socket. Think of it like "CI/CD lite"--something purpose-driven meant to satisfy HardenedBSD's needs. Also, I really enjoy reading Rust code, but I'm still not profficient in writing Rust, so I want to take this as an opportunity to better hone my Rust language writing skills.

Learning to write Rust better, anyways, will help me better submit patches to Radicle. There's still a decent amount of work needed. For example, it's possible to comment directly on a patch, but it's not possible to list patch comments (and hence reply to them.) Unless someone beats me to it (yes, please, if you have spare cycles), I hope to work on scratching that itch once I become more accustomed to writing Rust.

A note on the Radicle vulnerability announced[2] on 23 Sep 2026:

To sum up the vulnerability, there are two issues at stake:

  1. A malicious node can coerce another node to disclose private repositories (and their contents.)
  2. Radicle's traffic was thought to be fully encrypted. However, only the initial handshake is encrypted. The rest of the (long-lived) conversations betwen Radicle nodes is unencrypted.

HardenedBSD does not use private repositories on the Radcile network. We provide a Tor Onion Service endpoint for our main Radicle seed node. Using our Tor Onion Service endpoint ensures that your Radicle node is communicating through an encrypted transit. So we're not vulnerable to the private repo exposure issue. However, for those needing extra protection against traffic analysis, we suggest connecting to our Radicle node over Tor.

I still believe Radicle to be the right choice for HardenedBSD. However, their eventual migration to iroh will impact HardenedBSD, its users, and its developers. There will likely need to be coordinated effort between the Radicle team, the HardenedBSD team, and the wider community. I will be paying very close attention to Radicle's migration to iroh.

It is unfortunate that these kinds of vulnerabilities happened. Having worked on OpenSSL code, and integrated other projects in my past with OpenSSL, I can understand how something like this happened. Writing robust APIs is rather difficult.

At the same time, there should have been formal verification early on that things were working as desired. A simple tcpdump early on in development would have caught this. That said, I, too could have run tcpdump myself. However, I read over their documentation and took them at their word without verifying on my end. Same could be said for anyone and everyone even remotely interested in Radicle.

We're all human. We make mistakes. The Radicle team need to focus on adopting iroh, formalizing on-the-{,pseudo-}wire-traffic testing, and being more careful and focused with this next protocol iteration.

With all that said, I still want to be supportive of the Radicle team. They're already feeling pretty bad about making this level of magnitude mistake. They don't need anyone else piling on. Instead, they need our encouragement to get things right. Please be proactive in testing and, if you like writing Rust, help move them in that right direction.

[1]: https://radicle.network/nodes/rad.hardenedbsd.org
[2]: https://radicle.dev/2026/09/23/disclosure-of-vulnerability-in-network-pr...

HardenedBSD June / July 2026 Status Report

This status report covers both June and July 2026. It has been a rather chaotic couple of months for me.

I am going to use quite the number of backticks (`) in this status report. I apologize in advance. Think of then as used in Markdown to convey a command or static text.

In my announcement about force pushing the ports branch: I neglected to clarify the underlying issue and who is impacted. So, a non-malicious less-than-desireable commit made its way to the FreeBSD ports tree. FreeBSD needed to effectively remove the offending commit from the history due to licensing issues (there could be additional factors to which I am not privvy.) Since further commits made it to the tree, this made recovering from that state
a bit more difficult.

This naturally caused a chain reaction downstream for us. In addition to FreeBSD's commits, I had made multiple commits to migrate some of our ports entries to Radicle. This means that, we, too, have to break git commit history.

Those downstream from HardenedBSD, even, could be further impacted in a similar fashion. Those impacted primarily are those who maintain their own patches atop our ports tree. HardenedBSD uses a merge-based workflow for bringing in changes from upstream. I recognize that there may be downstream users who use a different workflow. I cannot advise you in that case--I'm most familiar with a merge-based workflow and haven't been sufficiently motivated to try others.

What I did was `git reset --hard` the tree back to the HardenedBSD auto-sync merge commit just prior to the offending commit from upstream. Afterwards, I merged the new freebsd main HEAD commit to our hardenedbsd/main branch.

If the last time you updated your ports tree was in the period we accepted the bad commit and our subsequent rollback, but you do NOT carry patches, you might find yourself in a weird state. I'm unsure what to tell users who use `git pull`, since I use a `git fetch && git merge` model. So, if you use the same, you can simply `git reset --hard rad/hardenedbsd/main` (after fetching `rad` of course).

I did run into issues with Radicle: primarily issues with mental models for this kind of situation. Previously, I consdiered the `rad` remote (which Radicle sets up by default) to be okay to use for both fetching and pushing. I used it like I would any normal git remote with push access.

Instead, I really should have considered the `rad` remote as read-only: use it only for fetching. I instructed Radicle to create a new remote, pointed to my own Radicle node: `rad remote add --name self $(rad self --did)`. I should push to this new remote, named `self`. For a more nuanced discussion, please see Appendix A below.

I haven't forgotten about re-establishing our GitHub mirror. I have other higher priority tasking at the moment, but I just wanted to say it is not forgotten. (And, I'm somewhat glad that our GitHub mirror hasn't been updated, since it hasn't been updated in so long, it didn't see the bad ports commit.)

In src:

  1. Robert set the default VMSIZE to 80gb for release VM images
  2. Shawn Webb: Harden the new security.bsd.allow_tiocsti sysctl node
  3. Shawn Webb: rc.conf(5): Support custom values for KLD prohibition value (hbsd_late_kld_prohibition_value, default: 1)
  4. Shawn Webb: Harden security.bsd.unprivileged_kenv_read
  5. Shawn Webb: Enable stack auto-init to zero for the linuxulator
  6. Shawn Webb: jail(8): Use safer memory management APIs
  7. Shawn Webb: Enable -ftrivial-var-auto-init=zero for linuxkpi_{hdmi,video}
  8. Shawn Webb: HBSD: Harden new sysctl nodes and reorganize PTrace hardening
    1. Harden vm.phys_fictitious_segs sysctl node with CTLFLAG_ROOTONLY
    2. Harden ptrace(PT_SET_SC_RET) in the same fashion as ptrace(PT_SC_REMOTE)
  9. Shawn Webb: Enable trivial var auto-init for uvideo(4)
  10. Shawn Webb: Enable -ftrivial-var-auto-init=zero for opensolaris.ko
  11. Shawn Webb: Garbage collect unused sysctl node
  12. Shawn Webb: Harden the GEOM and related control interfaces

In ports:

  1. Robert added a new port: misc/robert
  2. Robert migrated misc/robert to Radicle
  3. Robert updated the misc/robert port a few times, currently sitting at version 0.10.0.
  4. Robert migrated hardenedbsd/ctrl to Radicle
  5. Shawn Webb disabled COMPAT32 for the following ports:
    1. misc/compat13x
    2. misc/compat14x
    3. misc/compat15x
  6. Shawn Webb fixed the build of graphics/mesa-libs
  7. Shawn Webb fixed the build of graphics/mesa-dri
  8. Shawn Webb fixed the python version used with net-p2p/reticulum
  9. Shawn Webb fixed the build of lang/zig015 (which has, as of this writing, is broken again and on my queue to figure out.)
  10. Default devel/wasi-libc to llvm 21
  11. Migrate the default llvm version to 21 globally now that 15-STABLE LLVM in base has been updated to llvm 21
  12. Update ports-mgmt/pkg to 2.8.1
  13. Migrate hardenedbsd/liblattutil to Radicle
  14. Migrate hardenedbsd/hbsdmon to Radicle
  15. Migrate net/libpushover to Radicle
  16. Migrate sysutils/vm-bhyve-hbsd to Radicle and update to 1.7.4 (from 1.5.0)

Appendix A

Note: Relevant Zulip discussion

It is suggested that if you plan to contribute to a repository, you create a new remote called `self`: `rad remote add --name self $(rad self --did)`. Fetch from `rad`, push to `self`.

Treat `rad` as a virtual peer/contributor that tracks the network consensus and `self` is where you do all your own work.

Your `self` is what others see when they `rad remote add` you, and vice versa, so they're good for ad-hoc sharing. `rad` looks around at everybody and gathers up the crefs that satisfy sig requirements, so it's where you fetch canonical state from. As a convenience, `rad` also gathers up all the open patches so you don't have to hunt them down in the specific remote they came from.

HardenedBSD May 2026 Status Report

These past two months have been incredibly busy. I didn't publish a status report for April 2026, so this status report will cover that, too.

We have mostly completed the migration from our self-hosted GitLab Enterprise instance to Radicle. There's still further work to be done, but the most crucial bits have made it over. We're also still working on ironing out some kinks in learning "the Radicle way". I hope soon to write an article chronicling our journey thus far.

I wrote documentation on how to bootstrap Radicle's local storage directory with src and ports. If you hope to someday submit issues and/or patches, following these bootstrap instructions will certainly ease the initial pain. I plan to include an export of these Radicle storage bootstrap archives with each official build. The current exports are not signed. I'm going to include the hashes in this signed email. I am working on a candidate patch to our build scripts to perform this export. The archives exported by our builder VMs will be signed with our normal ssh key-based signing method.

Fully fixing the release image generation (chiefly fixing generation of disc1.iso) is my first priority. Radicle bootstrap archive generation is my second priority. Radicle integration in our auto-sync is my third priority. Our commit emails came from GitLab. I need to replicate that functionality but with "the Radicle way." For now, I'm performing the sync myself when time permits (usually multiple times per day.)

The past couple months have also seen a number of FreeBSD security advisories, so we've published new builds for 16-CURRENT and 15-STABLE. Installer image generation is still somewhat broken, though I've seen some success with memstick.img. I plan to continue working on this until we're 100% fixed, though it will take time. It takes quite the number of hours to test even the smallest of changes. I get pretty much at most two attempts at testing fixes per day.

I spent some time studying Reticulum's code. I'm in the process of writing a shim to abstract how its backbone interface implementation uses select and friends. Back when I last looked at it, it required use of epoll. Simultaenously while I was working on that, I did notice the Reticulum project was working on a more portable backbone interface implementation. So I need to restart that research when the time comes.

I also spent a little bit of time with hbsdfw. I started work on forward-porting our 14-stable hbsdfw-specific patches to 15-STABLE. Then GitLab died, and my priorities switched to the Radicle migration. So I need to restart this research, too, when the time comes. I think I might target -CURRENT rather than 15-STABLE. That way, we don't have to periodically forward-port patches: we just maintain our patches against the naturally-evvolving hardened/current/master.

We completed the ISP account migration. Some pain is left to resolve. We lost support for our tunneled IPv6 (via Hurricane Electric's Tunnel Broker). I need to schedule a part of my day to capture some packets and get on the phone with some tech support folks on the side of both my ISP and HE. Until then, I've removed the AAAA DNS records for the relevant bits of infrastructure.

In src:

  1. FreeBSD merged llvm 21 into base. We needed to fix one compilation error in HardenedBSD's code caught by llvm 21
  2. Replace FreeBSD's README.md with our main wiki-based documentation.
  3. Drop the -HBSD suffix in newvers.sh
  4. Migrate hbsd-update-build to Radicle
  5. Revert the release/ subdirectory to a known good-ish commit. This brought back generation of memstick.img
  6. The hardening.pax.kmod_load_disable sysctl node logic was enhanced
  7. Fix MK_LLVM_LINK_STATIC_LIBRARIES in src.opts.mk

In ports:

  1. multimedia/ffmpeg build was fixed
  2. ports-mgmt/pkg was updated to 2.7.5
  3. ports-mgmt/poudriere-hbsd was updated to 3.4.8
  4. A patch was brought in to fix the graphics/hdr_histogram port
  5. hardenedbsd/secadm was updated to account for recent MAC hook changes by FreeBSD
  6. Some incredibly basic support was implemented for downloading distfiles via Radicle HTTP
  7. ports-mgmt/pkg was migrated to Radicle
  8. The default llvm version was bumped to 21 for latest 16-CURRENT users
  9. ports-mgmt/poudriere-hbsd was migrated to Radicle
  10. COMPAT32 was disable for misc/compat{14,15}
  11. PIE was disabled for devel/ccache4
  12. net-p2p/reticulum was migrated to Radicle
  13. hardenedbsd/secadm was migrated to Radicle

I want to say a heartfelt thank you to the Radicle folks. You've spent a lot of time in helping out. You didn't have to, but you chose to. And for that, I'm incredibly grateful. It's fun to see the Radicle network evolve.

==== BEGIN ARTIFACT HASHES ====
$ sha256 ports.tar.xz
SHA256 (ports.tar.xz) = b12f303b96b02b16744c1286868726ab4df43a06f6d28de3c247d4d1598f743b
$ wc -c ports.tar.xz
1472685664 ports.tar.xz
$ sha256 src.tar.xz
SHA256 (src.tar.xz) = 00301a70910127f4fd9564dca1be948e6b9909e864053a76b9197565768345cf
$ wc -c src.tar.xz
2069117660 src.tar.xz
==== END ARTIFACT HASHES ====

HardenedBSD Officially on Radicle

Over the past week, I have been working on bringing HardenedBSD's code repositories on Radicle (as most/all of you already know by now.) We are now at the point where Radicle is usable for us. There are still some sharp edges and some things to work out, but the core functionality is working.

I have done some very basic/naive integration in the ports tree for downloading project distfiles from a radicle-httpd instance, similar in scope to USE_GITHUB/USE_GITLAB. This integration still needs a lot of work, but it works well enough to build ports-mgmt/pkg.

Radicle does still have some issues with regards to performance. You will want to configure Radicle explicitly to support larger repos. You may need to edit the Radicle config at ~/.radicle/config.json and set the node.limits.fetchPackReceive setting to at least 3GB.

You can browse our repos at: https://radicle.network/nodes/rad.hardenedbsd.org

Here are our current repos. I plan to migrate 100% of our repos over time. secadm will likely be next.

  1. rad:z2HLHXgL1xevBNQsf8BmQW7MpJmtm: HardenedBSD-src
  2. rad:z2XrdvALg77ycnuZRXgScb27yb3wM: HardenedBSD-ports
  3. rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9: HardenedBSD-pkg

These are the steps I've found to be the most reliable:

  1. Connect to the HardenedBSD seed vm:
    rad node connect z6MknwwMpmZET1PcvQjPYhA6hGY7wkYzxb9YtSRh5j2qSQdG@rad.hardenedbsd.org:8776
  2. Seed the src tree (repeat for ports):
    rad seed --from z6MknwwMpmZET1PcvQjPYhA6hGY7wkYzxb9YtSRh5j2qSQdG rad:z2HLHXgL1xevBNQsf8BmQW7MpJmtm
  3. Watch ~/.radicle/storage/rad:z2HLHXgL1xevBNQsf8BmQW7MpJmtm.tmp to move to ~/.radicle/storage/rad:z2HLHXgL1xevBNQsf8BmQW7MpJmtm. When this happens, you now have the src tree stored in Radicle's local storage. This will take a long while. Grab a pizza and a root beer.
  4. Clone the repo: rad clone rad:z2HLHXgL1xevBNQsf8BmQW7MpJmtm

Thank you everyone for your patience, support, and help. This has been a rather wild ride (and it's technically not over). As I make progress on further Radicle integration, I will keep everyone informed.

HardenedBSD March 2026 Status Report

Before I get into the bulk of the status report, I want to give a heads up about ISP changes coming in April 2026. On 23 Apr 2026, I will disconnect internet service at our home and on 24 Apr 2026, internet service will be restored. This is to migrate the account from my personal finances to being under the HardenedBSD Foundation umbrella. This switch will save us $30 USD/month with no changes in bandwidth capacity (symmetric and uncapped 940Mbps).

In March 2026, I focused on Reticulum. I started studying its code and started work on the BackboneInterface code, porting it to HardenedBSD. I'm almost complete with my initial work-in-progress patch.

I also fixed the build issues for both 15-STABLE and 16-CURRENT. pkgbase support is still broken in our installers, so that will be a topic for this coming quarter.

As I write this report on the 29th of March, I am preparing the next quarterly branches and build.

In src:

  1. Disable retpolines for the bootloader
  2. Make sure the kinfo_file struct always gets zeroed

In ports:

  1. 0x1eef's hardenedbsd/sourcezap and hardenedbsd/portzap were updated to 2.3.0.
  2. Fix the build of security/snowflake-tor
  3. ports-mgmt/pkg was updated to 2.6.2_1

HardenedBSD February 2026 Status Report

February saw a few changes in HardenedBSD. The majority of my time was spent chasing down the kernel crash in HardenedBSD 15-STABLE that has been plaguing our users. I worked on narrowing down to a three-day window during which a commit was made that causes the crash.

As I write this, I'm narrowing that down further to the specific commit. I'm hoping to have this resolved this month. If I find and fix the problem this week, I will create new builds for folks to use. Otherwise, the next scheduled regular quarterly build is for 01 Apr 2026.

I appreciate everyone's patience on this. This has been a tricky bug (at times, it fit the description of a "heisenbug"). My spare time is limited (I have a rather large amount of tasks/obligations in everyday ${LIFE} right now), so it has naturally taken a long while to get to this point.

While inbetween clients at my dayjob, I have been granted the opportunity to research meshtastic and other mesh networking projects. I'm getting a lot closer in my censorship- and surveillance-resistant mesh network proof-of-concept. I'm now at the point where I need to port Linux-specific code to HardenedBSD. I'm hoping to get normal tcp/ip packets flowing through Reticulum nodes on the inside of six months. This project, announced in partnership with Protectli one-and-a-half years ago[1], is starting to move along at a nice pace. I will have more to share on that by the next status report.

On Saturday, 28 Feb 2026, I had given my local Hackers N' Hops chapter a little show & tell of Meshtastic, Reticulum, and HardenedBSD. I met with a bunch of really cool hacckers there, and demoed two Reticulum RNodes backed by Reticulum instances on two HardenedBSD laptops. I demoed an exec-over-meshtastic Python script I wrote the day prior. The script is available on Radicle as rad:z44pvAJS7SiQf2CGtpn8hY44GDMyu.

Speaking of Radicle, I plan to migrate some of my personal repos away from our self-hosted GitLab and onto the Radicle network. With time, I'm hoping to migrate us completely towards Radicle. Now would be a good time for those who want to contribute to HardenedBSD to start playing around and experimenting with Radicle.

In src:

  1. Contributor "gmg" hardened the kernel crashdump interface.
  2. Opt zlib kernel module into -ftrivial-var-auto-init=zero.
  3. bsdinstall(8): Align us more closely with FreeBSD.

In ports:

  1. net-p2p/reticulum was updated to 1.1.3_2
  2. Disable PaX PAGEEXEC and PaX NOEXEC for science/zotero
  3. Bring in candidate patch to fix dns/unbound
  4. Hook hardenedbsd/ctrl into the build
  5. 0x1eef added a new port: hardenedbsd/ctrl
  6. Bump ports-mgmt/pkg to 3.5.1_1
  7. 0x1eef updated a port: portzap v2.1.1
  8. 0x1eef updated a port: sourcezap v2.1.1

Once I have figured out what's going on with the 15-STABLE panic and have a proper fix in place, I plan to quickly switch gears towards hbsdfw. I haven't produced a working hbsdfw build in a long time, and it's far past due. After that, I plan to switch right back to the Reticulum research and development.

I'll make sure to keep the community informed of the 15-STABLE findings and fixes.

HardenedBSD January 2026 Status Report

January was a busy month with regards to infrastructure. With both OpenSSL and FreeBSD announcing security fixes, we published new builds just weeks after our new quarterlies dropped. :-)

Now that we have the new quarterlies, I plan to "MFC" (old FreeBSD CVS/SVN term for "Merge From Current".) Kids these days call it `git cherry-pick`. MFC is shorter to type, so that's what I'll use. I plan to MFC a number of commits made in hardened/current/master to the hardened/15-stable/main branch this week.

I've also received multiple reports of crashes with the 15-STABLE installer. I haven't been able to work on this just yet, but am hoping to in the next two weeks. It is almost my current first priority (the MFCs being first.) I figure that if testing the cherry-picked code proves successful, I could cherry-pick those commits into the relevant quarterly branch. Kind of a "thank you" gesture for being patient with me. :-)

I applied relevant updates across the entire infrastructure. I migrated the package repos from being served by a leased server with limited storage to out of my home with plenty of storage. My next goal is to fully automate the build, including syncing. This will mark a good next step to eventually supporting mirroring our package repos. It's much easier to transfer a 140GB package repo over a local 2.5Gbps LAN than a 150Mbps link upstream.

I spent some time experimenting with Meshtastic and Reticulum. I'm getting a better picture from a user's perspective on the current state of mesh networking. My next goal is to teach Reticulum's BackboneInterface implementation how to work on FreeBSD/HardenedBSD.

Two of the four donated Protectli devices are providing the testing lab for this Meshtastic and Reticulum research. Even though the timeframe has shifted pretty dramatically, I'm grateful for their donations and their support.

In src:

  1. Opt ipfw into -ftrivial-var-auto-init=zero
  2. Remove our old MAC hook for jail/prison destruction (this commit breaks building secadm. I'm waiting on upstream to implement a specific MAC hook, and a patch for (for src, not for secadm) is being worked on by FreeBSD's Kyle Evans.)
  3. Disable WITNESS' checking of vnode locks by default. FreeBSD changed some vnode locking semantics and not all filesystem code paths have been updated. As such, we are seeing vnode locking-related panics. I need to get a consequtive block of time to dive in. I'm not a filesytems developer, so this one might take a while to figure out unless someone beats me to it.
  4. rc.subr: Ignore required_modules failures in jails (patch submission by leper4{ _AT_ }protnmail.com.)

In ports:

  1. Bump ftp/curl to 8.18.0
  2. Update Reticulum to latest git HEAD
  3. Disable HARDCFLAGS for devel/avr-gcc
  4. Enable ZEROREG for security/openssl3*. This could induce a noticeable performance hit. Please let me know if you have any serious performance issues after this next package build.

Welcome 0x1eef (Robert) to the HardenedBSD Development Team!

Multi-year HardenedBSD community member 0x1eef (Robert) has been sending in good quality patches over the past few years. I reached out on behalf of the HardenedBSD Core Team to 0x1eef, asking if he would like to become an official HardenedBSD developer. He accepted! Welcome to the team, 0x1eef! Thank you for the hard work!

A little bio about 0x1eef: I’m a systems-focused programmer working primarily with hardenedBSD for the past few years and I generally appreciate (and often use) all flavors of BSD. In the hardenedBSD space I have written portzap(8), sourcezap(8), ctrl(8) among a few other small contributions.

Pages

Subscribe to HardenedBSD RSS