FreeBSD-Wochenrückblick: 19.–25. Mai 2026

Die vergangene Woche war eine der ereignisreichsten für FreeBSD seit Langem: Sechs Sicherheitslücken wurden gleichzeitig veröffentlicht, FreeBSD 15.1 erreichte den Release-Candidate-Status, und die FreeBSD Foundation zeigt sich von der eigenen Desktop-Nutzung überrascht.

FreeBSD 15.1-RC1 veröffentlicht

Am 22. Mai gab Colin Percival die Veröffentlichung von FreeBSD 15.1-RC1 bekannt — der erste und voraussichtlich letzte Release Candidate vor dem geplanten Final Release Anfang Juni. RC1 steht für amd64, powerpc64, powerpc64le, armv7, aarch64 (inkl. RPI, PINE64, PINEBOOK, ROCK64, ROCKPRO64) und riscv64 zur Verfügung.

Die Änderungen seit Beta 3 umfassen:

  • Die sechs neuen Security Advisories SA-26:18 bis SA-26:24 (siehe unten)
  • Verbesserungen an fwget(8) zur automatischen Erkennung benötigter Firmware für weitere WLAN-Karten
  • EC2 „small“-Instanzen führen firstboot_pkgs nicht mehr standardmäßig aus
  • freebsd-update fragt nicht mehr nach dem Merge von /etc/ssl/cert.pem
  • Diverse Kernel-Bugfixes und Manpage-Updates

Der gesamte Satz an Installations-Images, VM-Images (QCOW2, VHD, VMDK, Raw), OCI-Container-Images und EC2-AMI-Images steht auf den üblichen Download-Mirrors bereit.

Schwere Sicherheitswoche: Sechs Advisories gleichzeitig

Am 20. Mai veröffentlichte das FreeBSD Security Team gleich sechs Security Advisories — und gleich mehrere davon wurden durch KI-gestützte Schwachstellensuche entdeckt.

SA-26:18.setcred — Stack-Buffer-Overflow (CVE-2026-45250, kritisch)

Die schwerwiegendste Schwachstelle der Woche. Ein sizeof-Typfehler in kern_setcred_copyin_supp_groups()(sys/kern/kern_prot.c) führt zu einem Kernel-Stack-Buffer-Overflow im setcred(2)-Systemaufruf. Die Fehlerkette: sizeof(*groups) ergibt 8 Bytes (Zeigergröße) statt der erwarteten 4 Bytes (sizeof(gid_t)). Ein unprivilegierter lokaler Nutzer kann damit Root-Rechte erlangen — sogar auf Systemen mit SMAP/SMEP. Die Schwachstelle wurde von Przemyslaw Frasunek unter dem Namen „FatGid“ veröffentlicht und betrifft FreeBSD 14.3, 14.4 und 15.0.

Betroffen: 14.3 (behoben in p14), 14.4 (behoben in p5), 15.0 (behoben in p9). FreeBSD 13.x und früher sind nicht betroffen, da setcred(2) dort nicht existiert.

SA-26:19.file — Kernel Use-After-Free

Fehlerhafter Dateideskriptor-Systemaufruf kann zu Use-After-Free im Kernel führen. Entdeckt von Calif.io (KI-gestützte Schwachstellensuche).

SA-26:20.fusefs — Heap-Overflow in FUSE_LISTXATTR

Der Kernel verarbeitet erweiterte Attributlisten von Userspace-FUSE-Daemons ohne korrekte NUL-Terminierungsprüfung. Entdeckt vom AISLE Research Team (autonome Schwachstellensuche).

SA-26:21.ptrace — Fehlende Validierung in ptrace(PTSCREMOTE)

Fehlende Eingabevalidierung ermöglicht unprivilegierten lokalen Nutzern die Eskalation zu Root. Entdeckt mit GLM-5.1 von Z.ai.

SA-26:22.libcasper — Stack-Overflow über select(2)

Überlauf des Dateideskriptor-Sets in select(2) innerhalb von libcasper führt zu Stack-Overflow. Entdeckt vom AISLE Research Team.

SA-26:23.bsdinstall — Remote Code Execution über WLAN-Scan

Ein speziell gestalteter Netzwerkname (SSID) kann während des WiFi-Scans in bsdinstall und bsdconfig zur Ausführung beliebiger Befehle führen. Praktisch relevant bei der Installation in WLAN-Umgebungen.

SA-26:24.cap_net — Falsche Berechtigungsmanipulation

Fehlerhafte Manipulation von Limitierungslisten in libcap_net kann die Berechtigungen eines Prozesses erweitern. Entdeckt vom AISLE Research Team.

Fazit: Bemerkenswert ist, dass mehrere dieser Schwachstellen durch KI-basierte Werkzeuge entdeckt wurden (Calif.io, GLM-5.1, AISLE Research Team). Dies markiert einen Wendepunkt im Sicherheitsaudit von Betriebssystemen.

FreeBSD 15.1 Beta 3 (17. Mai)

Die dritte Beta von FreeBSD 15.1 brachte am vergangenen Wochenende ebenfalls wichtige Neuerungen:

  • OpenZFS 2.4.2 wurde integriert (Bugfixes und Verbesserungen)
  • Cloud-Images führen nun automatisch pkg upgrade beim ersten Boot durch, um Sicherheitsupdates anzuwenden
  • Kerberos wurde aktualisiert
  • Scripted bsdinstall-Installationen nutzen nun pkgbase
  • Geplantes KDE-Desktop-Installationsprofil wurde auf FreeBSD 15.2 verschoben, da das Skript noch an neue NVIDIA-Treiber und veraltete Teile angepasst werden muss

FreeBSD Foundation Executive Director täglich FreeBSD auf Laptop

Deb Goodkin, Executive Director der FreeBSD Foundation seit 2005, berichtete auf der Open Source Summit North America (OSS 2026) in Minneapolis über ihre Erfahrungen, FreeBSD erstmals als tägliches Betriebssystem auf einem Framework-Laptop zu nutzen. Bisher hatte sie FreeBSD jedes Mal als „Berg“ empfunden, wenn sie es auf Laptops probierte. Mit der KDE-Desktop-Umgebung funktionierte der Touchscreen sofort, ebenso Peripheriegeräte. Probleme blieben jedoch: Zoom funktionierte nur nach Aufwand, die Webcam benötigte manuelle Schritte, und Microsoft Teams funktionierte nur teilweise. Ein ermutigendes Zeichen, aber auch ein ehrlicher Blick auf den noch bestehenden Nachholbedarf im Desktop-Bereich.

Community und Blogbeiträge

Per-Jail Package Repository Selection (Ian Wagner)

Ian Wagner veröffentlichte einen hilfreichen Blogbeitrag über die Konfiguration unterschiedlicher Package-Repositorien pro Jail unter FreeBSD. Mit AppJail lassen sich Jails deklarativ verwalten, und der Beitrag zeigt, wie man spezifische Jails auf den latest-Zweig der Ports umstellt, wenn man aktuellere Pakete benötigt, während andere beim quarterly-Zweig bleiben.

FreeBSD Resource Monitoring, Accounting, and Troubleshooting (Larvitz Blog)

Ein ausführlicher Beitrag über Ressourcenüberwachung und Fehlerbehebung auf FreeBSD-Systemen — von „der Server fühlt sich langsam an“ bis hin zu konkreten Diagnosewerkzeugen.

Migration von Ubuntu 16.04 zu FreeBSD

Ein Blog, der 10 Jahre auf Ubuntu 16.04 lief, berichtete über die Migration zu FreeBSD — motiviert durch das Ende des Lebenszyklus von Ubuntu 16.04 und die Aussicht auf langfristige Stabilität.

Valuable News — 18. Mai (vermaden)

Die wöchentliche Linksammlung von vermaden bietet wie immer einen guten Überblick über BSD- und UNIX-relevante Artikel der Woche.

Mailinglisten-Diskussionen

pkgbase-Upgrade von 15.0 auf 15.1

Die Diskussionen um den pkgbase-Upgrade-Pfad von 15.0-RELEASE auf 15.1-BETA2 zeigen, dass der Übergang zur neuen Standard-Installationsmethode noch nicht ganz reibungslos verläuft. Probleme mit Kernel-Modulen (kmods) und der pkgbase-quarterly-Repos wurden ausführlich diskutiert.

Boot-Time Bugs auf freebsd-stable

Garrett Wollman berichtete über Probleme beim Booten seiner Server-Flotte und löste eine Diskussion über Boot-Time-Verhalten und Fehlerbehandlung aus.

Diskless-Systeme mit 15.1

Daniel Braniss und Bjoern Zeeb diskutierten Probleme mit diskless-Setups unter FreeBSD 15.1, die zum Hängen führen können.

Ausblick

Wenn alles nach Plan verläuft, erscheint FreeBSD 15.1-RELEASE voraussichtlich am 2. Juni 2026. Das KDE-Desktop-Installationsprofil wird auf 15.2 (erwartet im Dezember) verschoben. Bis dahin bleibt die manuelle Installation über pkg der empfohlene Weg.

FreeBSD-Wochenrückblick: 11.–17. Mai 2026

Die Woche war geprägt von der dritten Beta von FreeBSD 15.1, einer wichtigen Sicherheitslücke in execve(), Diskussionen über die KDE-Desktop-Installation und der Verschiebung dieses Features auf 15.2, sowie zwei libnv-Sicherheitslücken, die Ende April offengelegt wurden und nach wie vor Aufmerksamkeit verdienen. Hier ist der Überblick.

FreeBSD 15.1 Beta 3 veröffentlicht

Am Wochenende wurde FreeBSD 15.1-BETA3 als neuester Testkandidat veröffentlicht. Das Release rückt damit in die heiße Phase — nächste Woche wird der Release Candidate (RC) erwartet, und wenn alles glatt läuft, soll FreeBSD 15.1-RELEASE am 2. Juni 2026erscheinen.

Die wichtigsten Änderungen in Beta 3:

  • OpenZFS 2.4.2 wurde integriert — die neueste OpenZFS-Version mit diversen Fehlerkorrekturen und kleinen Verbesserungen.
  • Cloud-Images führen nun beim ersten Boot automatisch pkg upgrade durch, um Sicherheitsupdates des Basissystems anzuwenden. Das ist ein sinnvoller Schritt für Cloud-Deployments, die oft aus veralteten Images starten.
  • Kerberos wurde aktualisiert.
  • bsdinstall nutzt bei skriptgesteuerten Installationen jetzt pkgbase.

Die Beta-Phase lief bisher relativ ruhig — BETA1 und BETA2 in den Wochen davor brachten vor allem Zstd 1.5.7, Fehlerkorrekturen in ifconfig, lockf, stat, tail, certctl sowie Kernel-Fixes für nullfs, so_splice und VT.

Rückblick BETA2 (8. Mai)

  • Update auf Zstd 1.5.7
  • bsdinstall nutzt nun konsistent pkg.freebsd.org für Package-Bootstrap
  • Diverse Userland- und Kernel-Fixes

Kritische Sicherheitslücke in execve() — CVE-2026-7270

Eine ernste Sicherheitslücke im Kernel wurde Ende April veröffentlicht und hat diese Woche weiterhin Diskussionsstoff geliefert. FreeBSD-SA-26:13.exec beschreibt einen Operator-Vorrang-Fehler (operator precedence) in der Implementierung von execve(2), der zu einem Pufferüberlauf führt. Angreiferkontrollierte Daten können in angrenzende Argument-Puffer überschreiben und Kernel-Zustand korrumpieren, was zur Erlangung von Root-Rechten durch unprivilegierte Nutzer führen kann.

Die Lücke betrifft alle unterstützten FreeBSD-Versionen (13.5 bis 15-Branch). Patches wurden innerhalb von Stunden veröffentlicht, und die Behebung besteht im Hinzufügen expliziter Klammern zur Durchsetzung der beabsichtigten Auswertungsreihenfolge sowie einer Verschärfung der Größenprüfungen.

Reaktionen der Community

  • Positiv: Rasche Reaktion — das Advisory erschien weniger als eine Stunde nach Entdeckung des Fehlers, Patches für alle Zweige waren am selben Tag verfügbar.
  • Kritisch: Es gibt keinen Workaround. Administratoren, die keinen sofortigen Reboot durchführen können (z. B. bei High-Availability-Systemen), bleiben verwundbar.
  • Quellcode-basierte Installationen erfordern Kernel-Rekompilierung und Reboot, was auf älterer Hardware Stunden dauern kann.

Zwei libnv-Sicherheitslücken (SA-26:16 und SA-26:17)

Ebenfalls am 29. April wurden zwei Sicherheitslücken in libnv veröffentlicht, die weiterhin relevant sind:

  • SA-26:16 (CVE-2026-39457): Stack-Overflow über select() — wenn ein Socket-Deskriptor größer als FD_SETSIZE (1024) ist, wird der Dateideskriptor-Satz von select(2) überlaufen. Ein Angreifer, der ein Programm dazu bringen kann, viele Dateideskriptoren zu öffnen, kann einen Stack-Overflow auslösen und bei setuid-Root-Programmen lokale Privilegien eskalieren. Entdeckt von Joshua Rogers (AISLE Research Team).
  • SA-26:17 (CVE-2026-35547): Heap-Overflow in libnv — die Nachrichtengröße wird beim Verarbeiten des Headers nicht korrekt validiert, was Schreiben außerhalb der Heap-Allokation ermöglicht. Dies kann Abstürze, Panics oder mögliche Privilegieneskalation durch unprivilegierte Nutzer verursachen. Entdeckt von Mariusz Zaborski.

Beide Lücken betreffen alle unterstützten FreeBSD-Versionen und haben keinen Workaround. Ein Upgrade und Reboot ist zwingend erforderlich.

KDE-Desktop-Installation verschoben auf FreeBSD 15.2

Die lang erwartete KDE-Desktop-Option im FreeBSD-Installer wurde erneut verschoben — diesmal von 15.1 auf 15.2 (voraussichtlich Dezember 2026). Ursprünglich für 15.0 geplant, dann auf 15.1 verschoben, muss das Skript wegen neuer NVIDIA-Treiber aktualisiert und veraltete Teile entfernt werden. Nach dem Commit in CURRENT wird eine Testphase in STABLE benötigt, was den Zeitrahmen für 15.1 nicht mehr einhält.

Bis dahin bleibt der manuelle Weg: KDE Plasma nach der Installation via pkg aufsetzen.

Mailinglisten-Diskussionen

Update-Strategie und Timing (freebsd-current)

Bob Prohaska startete eine Diskussion über bevorzugte Update-Strategien für selbst gehostete FreeBSD-Systeme. Auf stable-Zweigen ist die Sache einfach: freebsd-update nutzen. Auf current wird es komplexer. Warner Losh, Rick Macklem, Mark Millard und andere diskutierten die Vor- und Nachteile verschiedener Ansätze — eine nützliche Lektüre für jeden, der current im Produktivbetrieb nutzt.

PKGBASE: Upgrade von 15.0 auf 15.1-BETA2

Vermaden fragte nach dem Upgrade-Pfad von FreeBSD 15.0-RELEASE auf 15.1-BETA2 im PKGBASE-Modell. Colin Percival bestätigte, dass dieser Pfad noch nicht vollständig dokumentiert ist. Das PKGBASE-System ist weiterhin als experimentell markiert, und der Minor-Upgrade-Pfad benötigt noch Arbeit.

Beach Cleaning Project: Infrastruktur-Aufräumung

Die FreeBSD Foundation veröffentlichte Ende April einen ausführlichen Bericht zum Beach Cleaning Project, der auch diese Woche noch Aufmerksamkeit erhält. Das Projekt zielt darauf ab, die Sicherheitsresilienz des FreeBSD-Basissystems zu verbessern:

  • Maschinenlesbares Inventar von über 1.000 Komponenten im Basissystem, darunter 73 Third-Party-Komponenten
  • OpenSSL 3.5 LTS wurde rechtzeitig für FreeBSD 15.0 integriert (statt OpenSSL 3.0, das im September 2026 EOL erreicht)
  • SBOM-Generierung (Software Bill of Materials) im SPDX 2/3-Format
  • CODEOWNERS-ähnliche Berichte für bessere Wartbarkeit
  • Vorbereitung auf den Import von pkg ins Basissystem als Teil des pkgbase-Übergangs

Gefördert wurde das Projekt von Alpha-Omega.

Blogbeiträge der Woche

Vermaden: FreeBSD PKGBASE Minor Upgrades

Vermaden veröffentlichte einen praktischen Leitfaden zum Upgrade von FreeBSD 15.0 auf 15.1-BETA2 mit PKGBASE und ZFS Boot Environments. Der Artikel zeigt Schritt für Schritt, wie man eine neue BE erstellt, pkg-Repository konfiguriert, das Basissystem aktualisiert und bei Problemen zurückkehren kann — inklusive eines alternativen Wegs mit --chroot.

Going Back to BSD

Pete veröffentlichte einen persönlichen Blogbeitrag über seine Rückkehr zu BSD nach Jahrzehnten mit Linux. Er beschreibt den Wechsel von Linux (Arch) zu FreeBSD, die Einrichtung von Mailservern mit Bastille-Jails und die erfrischende Einfachheit des rc-Systems im Vergleich zu systemd. Ein nostalgischer und praktischer Bericht.

Ausblick

Die nächste Woche steht im Zeichen des Release Candidates für FreeBSD 15.1. Wenn keine unerwarteten Probleme auftreten, wird das finale Release am 2. Juni 2026 erwartet. Administratoren sollten dringend die drei Sicherheitslücken (execve, libnv x2) patchen, falls noch nicht geschehen.

Quellen: PhoronixFreeBSD MailinglistenFreeBSD Security AdvisoriesFreeBSD FoundationVermaden BlogLavX Newspeteftw.com

Das Doku-Paradox: Warum Teams dokumentieren, wenn es zu spät ist — und wie man es früher schafft

Jeder kennt die Situation: Ein kritischer Dienst fällt aus. Das Telefon läuft heiß. Der Slack-Kanal brennt. Und irgendjemand — meist der neue Kollege, der drei Wochen im Haus ist — fragt: „Gibt’s dazu eine Doku?“

Stille.

Dann, nach einer halben Stunde Suchen, findet jemand ein Confluence-Dokument, das zuletzt 2021 aktualisiert wurde. Die Servernamen stimmen nicht mehr. Die Ports sind falsch. Der beschriebene Workaround funktioniert längst nicht mehr, weil zwischenzeitlich ein Major-Upgrade stattfand, das niemand dokumentiert hat.

Und jetzt — jetzt, mitten im Ausfall, unter Zeitdruck, mit Management, das alle fünf Minuten nach dem Status fragt — jetzt soll Dokumentation entstehen. Gute Dokumentation. Vollständig. Nachvollziehbar.

Das ist das Doku-Paradox: Dokumentation ist genau dann am wichtigsten, wenn sie am schwersten zu erstellen ist.

Die drei Zustände von Dokumentation

Dokumentation existiert in genau drei Zuständen. Und jeder ist schlimmer als der vorherige.

Zustand 1: Gar nicht

Kein Wiki-Eintrag. Kein README. Nichts im Git-Repo. Die Konfiguration existiert nur auf dem Server und im Kopf der Person, die sie aufgesetzt hat.

Das ist offensichtlich schlecht. Aber — und das wird oft übersehen — es hat einen Vorteil: Es ist ehrlich. Jeder, der ankommt, weiß sofort: Hier gibt es keine Doku. Ich muss fragen. Ich muss vorsichtig sein. Ich muss mich auf nichts verlassen, was ich finde.

Das ist unangenehm, aber klar.

Zustand 2: Veraltet

Jemand hat 2021 eine schöne Doku geschrieben. Architekturdiagramme. Schritt-für-Schritt-Anleitungen. Tabellen mit Servernamen und IPs. Richtig gute Arbeit.

Aber jetzt ist es 2026. Fünf Server aus der Doku existieren nicht mehr. Drei neue sind dazugekommen. Der Load Balancer wurde durch einen anderen ersetzt. Die SSL-Zertifikate rotieren mittlerweile automatisch, aber die Doku beschreibt noch den manuellen Prozess.

Veraltete Doku ist gefährlicher als keine Doku. Warum? Weil sie Vertrauen erweckt, das nicht gerechtfertigt ist. Du liest das Dokument, denkst „Alles klar, ich verstehe das System“ — und handelst auf Basis von Informationen, die schlicht falsch sind.

Beim Zustand „gar nicht“ fragst du nach. Beim Zustand „veraltet“ glaubst du, du müsstest nicht fragen.

Zustand 3: Falsch

Das ist die Eskalation von Zustand 2. Veraltete Doku könnte noch stimmen. Falsche Doku stimmt aktiv nicht — und sieht dabei aus, als würde sie stimmen.

Falsche Doku ist das Ergebnis von „ich hab das schnell angepasst, das stimmt so“ — wenn es nicht stimmt. Von copy-paste aus einer anderen Doku, bei der ein Detail übersehen wurde. Von jemandem, der schreibt, wie etwas funktionieren sollte, nicht wie es funktioniert.

Falsche Doku ist aktiv schädlich. Sie führt zu Fehlern, die ohne die Doku nicht passiert wären. Sie ist eine Zeitbombe.

Die bittere Erkenntnis: Der Weg von „keine Doku“ zu „falsche Doku“ ist kürzer als man denkt. Ein halbgutes Update eines alten Dokuments reicht.

Warum niemand dokumentiert

Die Gründe sind banal und universell.

Kein unmittelbarer Nutzen. Wenn du eine Konfiguration änderst, hast du einen sofortigen Effekt: Der Dienst funktioniert wieder. Die Pipeline läuft. Der Bug ist weg. Wenn du dieselbe Änderung dokumentierst, passiert — nichts. Zumindest nichts, das du spürst. Der Nutzen ist latent, diffus, irgendwann in der Zukunft.

Kein Deadline-Druck. Features haben Deadlines. Bugs haben SLAs. Security-Patches haben CVE-Nummern und verantwortliche Offenlegungszeitpläne. Dokumentation hat nichts davon. Niemand ruft am Freitag um 17 Uhr an und sagt „Die Doku für den neuen Mailserver muss bis Montag fertig sein.“

„Das weiß ich doch im Kopf.“ Das ist der gefährlichste Grund, weil er wahr ist — im Moment. Du hast das System aufgesetzt. Du kennst jeden Knopf, jeden Workaround, jeden historischen Grund, warum das so ist und nicht anders. Warum solltest du aufschreiben, was du ohnehin weißt? Das wäre redundant. Ineffizient.

Bis du kündigst. Krank wirst. Urlaub machst. Oder — und das passiert öfter als man denkt — bis du es vergisst. Drei Monate später, unter Stress, um 2 Uhr nachts, erinnerst du dich nicht mehr, warum der DNS-Resolver auf genau diesem Host auf Port 5353 lauscht. Oder ob das noch gebraucht wird. Oder ob das ein temporärer Hack war, der längst weg sollte.

Und dann machst du genau das, was man nicht machen sollte: Du lässt es stehen, weil du dir nicht sicher bist, ob etwas davon abhängt.

Die Kosten der fehlenden Doku

Die Kosten sind massiv, aber sie fallen selten dem zu, der die Doku nicht geschrieben hat. Sie externalisieren sich — auf Kollegen, auf Nachfolger, auf das Projekt.

Onboarding-Zeiten

Ein neuer Kollege braucht bei guter Dokumentation vielleicht zwei Wochen, um produktiv zu werden. Bei fehlender Doku sind es zwei Monate. In denen fragt er alles. In denen erfahrene Kollegen unterbrochen werden. In denen er Fehler macht, die ein Readme in fünf Minuten verhindert hätte.

Onboarding-Kosten sind die sichtbarste und messbarste Konsequenz. Und trotzdem wird in den seltensten Fällen der Dokumentationsmangel als Grund identifiziert. Es heißt dann „Der Einarbeitungsprozess muss optimiert werden“ — statt „Wir haben keine Doku“.

Single Points of Failure

Wenn eine Person die einzige ist, die ein System versteht, ist das ein Single Point of Failure. Nicht das System — die Person. Und Menschen sind deutlich anfälliger als gut administrierte FreeBSD-Server. Sie kündigen. Sie werden krank. Sie gewinnen im Lotto und ziehen nach Neuseeland.

Jedes System, das nur eine Person versteht, ist ein Risiko. Und dieses Risiko wird in den seltensten Fällen in der Risikoanalyse auftauchen, weil — ihr ahnt es — niemand dokumentiert hat, dass das System nur von einer Person verstanden wird.

Update-Angst

„Wir können nicht updaten, wir wissen nicht, ob das noch funktioniert.“ Das ist der Satz, der jeden Admin das Fürchten lehrt. Weil irgendjemand vor drei Jahren einen Patch auf einem System eingespielt hat, der einen Edge Case abdeckt, der nirgends dokumentiert ist. Und jetzt soll ein Major-Upgrade gemacht werden, und niemand weiß, ob dieser Patch noch relevant ist, ob er noch gebraucht wird, oder ob er längst in den Upstream geflossen ist.

Also bleibt das System auf einer alten Version. Aus Angst. Und aus mangelndem Vertrauen in die eigene Dokumentation, die nicht existiert.

Dienstleister-Konflikte

„Mein Teil funktioniert.“ — Der Klassiker bei verteilten Systemen mit externen Dienstleistern. Die Datenbank-Admins sagen „Die DB läuft“. Die App-Entwickler sagen „Die App läuft“. Die Netzwerk-Admins sagen „Das Netzwerk läuft“. Und trotzdem funktioniert das Gesamtsystem nicht.

Jeder kennt nur seinen Teil. Niemand kennt die Schnittstellen. Niemand hat dokumentiert, wie die Teile zusammenhängen. Und jetzt sitzen alle im Kriegsrat und zeigen mit dem Finger aufeinander.

Gute Dokumentation der Schnittstellen — der Verträge zwischen den Systemen, nicht der Systeme selbst — hätte das verhindert. Aber Schnittstellen zu dokumentieren ist noch unwirtschafter als Systeme zu dokumentieren, weil es keinen klaren Eigentümer gibt.

Praktische Lösungen

Genug der Diagnose. Hier ist die Therapie.

Living Documentation: Doku als Code

Der beste Zustand von Dokumentation ist der, in dem sie nicht gepflegt werden muss, weil sie sich selbst pflegt. Living Documentation bedeutet: Die Dokumentation ist nicht ein separates Dokument, das man aktualisieren muss. Sie ist Teil des Codes, der ohnehin gepflegt wird.

Ansible-Playbooks als Dokumentation. Ein gut geschriebenes Ansible-Playbook ist die Dokumentation. Jede Task beschreibt, was auf dem System passiert. Die Variablen zeigen, welche Parameter verwendet werden. Die Handler zeigen, was bei Änderungen passiert. Wenn das Playbook aktuell ist, ist die Doku aktuell. Wenn nicht — dann läuft das Playbook auch nicht, und das Problem ist ein anderes.

Ein Beispiel:

# roles/mailserver/tasks/main.yml
# Postfix + Dovecot Mailserver Setup
# See: https://wiki.tgeppert.de/mailserver for architecture overview

- name: Install Postfix and Dovecot
  ansible.builtin.package:
    name:
      - postfix
      - dovecot
      - dovecot-pigeonhole
    state: present
  tags: [install, mail]

- name: Configure Postfix virtual domains
  ansible.builtin.template:
    src: postfix/virtual_domains.j2
    dest: /etc/postfix/virtual_domains
    owner: root
    group: wheel
    mode: '0644'
  notify: Reload Postfix
  tags: [config, mail]

Das Playbook sagt dir: Welche Pakete sind installiert? Welche Konfigurationsdateien gibt es? Welche Berechtigungen? Welche Tags für selektives Ausführen? Du musst kein separates Dokument pflegen — das Playbook ist das Dokument.

Terraform-Module als Architektur-Beschreibung. Dasselbe gilt für Terraform. Ein Terraform-Modul beschreibt die Infrastruktur deklarativ. Die Ressourcen, die Abhängigkeiten, die Variablen — das alles ist gleichzeitig Code und Dokumentation.

# modules/webapp/main.tf
# Web Application Stack: LB -> App -> DB
# Last reviewed: 2026-04

resource "proxmox_vm_qemu" "webapp" {
  name        = "webapp-${var.environment}"
  target_node = var.proxmox_node
  clone       = "freebsd-14-template"
  # ...
}

Wenn jemand die Architektur verstehen will, liest er das Terraform-Modul. Wenn etwas geändert wird, ändert sich das Modul. Die Doku aktualisiert sich von selbst — weil sie identisch mit dem Code ist.

ZFS-Snapshots als Änderungsprotokoll

Hier wird es interessant für die FreeBSD-Fraktion unter uns. ZFS hat eine Eigenschaft, die fast niemand für Dokumentation nutzt, die aber extrem wertvoll ist: Snapshots.

Jeder ZFS-Snapshot ist ein punktuelles Abbild des Dateisystems. Wenn du Snapshots regelmäßig erstellst — was du ohnehin tun solltest —, hast du eine chronologische Aufzeichnung jeder Änderung auf Dateisystemebene.

# Snapshot erstellen (z.B. vor einem Upgrade)
zfs snapshot zroot/usr/local@pre-upgrade-2026-04-23

# Was hat sich seit dem letzten Snapshot geändert?
zfs diff zroot/usr/local@daily-2026-04-22 zroot/usr/local@daily-2026-04-23

Die Ausgabe von zfs diff zeigt dir exakt, welche Dateien hinzugekommen, geändert oder gelöscht wurden. Das ist kein Ersatz für eine menschliche Dokumentation — aber es ist ein Änderungsprotokoll, das sich nicht vergessen werden kann. Es passiert automatisch.

Kombiniert mit einem Commit-Message-Stil für Snapshot-Namen (@pre-upgrade-2026-04-23, @post-dovecot-config), entsteht eine Art Git-Log auf Dateisystemebene. Ohne dass jemand ein Git-Log pflegen muss.

Die Documentation-First-Regel: Kein System ohne README im Repo

Hier ist eine einfache Regel, die den Charakter einer Organisationskultur verändert: Kein System geht live ohne ein README im zugehörigen Repository.

Nicht ein perfektes README. Nicht eine 20-seitige Architekturdokumentation. Ein README. Eine Seite. Was ist das? Wie starte ich es? Wo läuft es? Wen frag ich, wenn etwas kaputt ist?

# Mailserver (Postfix + Dovecot)

## Was ist das?
Zentrale Mail-Infrastruktur für @tgeppert.de und @beispiel.de

## Wo läuft es?
- Host: mx01.tgeppert.de (Proxmox VM, FreeBSD 14)
- IP: 192.168.1.50 (intern), 203.0.113.50 (extern)
- Ansible-Playbook: `ansible/mailserver.yml`

## Wie starte ich es?

bash
ansible-playbook ansible/mailserver.yml –tags install,config

## Wen frag ich?
Thorsten Geppert (thorsten@tgeppert.de)

## Bekannte Probleme
- DKIM-Signaturen müssen nach Cert-Rotation manuell geprüft werden
- Siehe Issue #42

Das ist keine Rocket Science. Das ist fünf Minuten Arbeit. Und es ist mehr Dokumentation, als 90% der Systeme in 90% der Unternehmen haben.

Die Regel ist einfach: Kein Deployment ohne README. Keine Ausnahmen. Wenn das README fehlt, geht der Pull Request nicht durch. Punkt.

Warum FreeBSDs Manpage-Kultur ein Vorbild ist

FreeBSD macht etwas richtig, das viele Linux-Distributionen vernachlässigen: Die Manpages sind erstklassig.

Wenn du auf einem FreeBSD-System man rc.conf eingibst, bekommst du eine detaillierte, aktuelle, durchsuchbare Dokumentation aller verfügbaren Systemparameter. Mit Beispielen. Mit Defaults. Mit Querverweisen. Und — das ist der entscheidende Punkt — die Manpages werden zusammen mit dem Code gepflegt. Sie sind Teil des gleichen Repositories, desselben Release-Prozesses, derselben Review-Kultur.

Das funktioniert, weil in der FreeBSD-Community die Erwartung besteht: Wenn du ein Feature einreichst, kommt die Doku mit. Ein Patch ohne Manpage-Update wird nicht gemerged. Nicht als Strafe, sondern weil Dokumentation als Teil des Features verstanden wird — nicht als Nachgang.

Diese Kultur lässt sich nicht über Nacht einführen. Aber das Prinzip lässt sich übertragen: Doku und Code gehören in denselben Review-Prozess. Wenn der Pull Request das Feature bringt, muss er auch die Doku bringen. Sonst kein Merge.

Git-Repositories für Konfigurationen

Die Idee ist simpel, aber die Umsetzung hat weitreichende Konsequenzen: Jede Konfiguration, die auf einem Server lebt, gehört in ein Git-Repository.

Nicht nur der Anwendungscode. Die nginx-Konfiguration. Die pf-Regeln. Die cron-Jobs. Die /etc/rc.conf. Alles.

Warum?

  1. Versionierung. Du kannst sehen, was sich wann geändert hat. Und — wichtiger noch — du kannst zurückrollen. git log /etc/nginx/sites-available/example.conf zeigt dir die Geschichte. git diff HEAD~1 zeigt dir die letzte Änderung. Das ist Dokumentation, die sich selbst schreibt.
  2. Verteilung. Mit Ansible, Puppet oder einfach git pull verteilst du Konfigurationen konsistent. Kein „auf Server A ist die alte Version, auf Server B die neue“.
  3. Review. Änderungen an der Konfiguration können wie Code-Änderungen behandelt werden: Pull Request, Review, Merge. Plötzlich hat jede Änderung einen Kontext — wer, wann, warum.
  4. Automatische Dokumentation. Die Commit-Historie ist das Änderungsprotokoll. Kein Mensch muss ein Change-Log pflegen. Git macht es.
# /etc in ein Git-Repo verwandeln (FreeBSD)
cd /etc
git init
git add rc.conf pf.conf nginx/ postfix/
git commit -m "Initial commit: current server configuration"

# Änderung tracken
git add rc.conf
git commit -m "Enable moused on /dev/ums0 for USB mouse support"

Das ist kein Ersatz für eine Architekturdokumentation. Aber es ist ein Fundament, auf dem man aufbauen kann. Und es kostet fast nichts.

Automatische Doku durch Monitoring und Logging

Die letzte Säule: Monitoring und Logging als automatische Dokumentation.

Monitoring-Systeme wie Prometheus, Grafana, Icinga oder Zabbix erfassen permanent den Zustand deiner Systeme. Das ist nicht nur operativ wertvoll — es ist auch Dokumentation.

  • Grafana-Dashboards zeigen die aktuelle Architektur. Welche Dienste laufen? Welche Metriken werden erfasst? Welche Schwellwerte gelten? Ein gut gebautes Dashboard ist eine visuelle Dokumentation des Systems.
  • Alert-Regeln dokumentieren, was als problematisch gilt. Wenn der Alert „Mailqueue > 500″ existiert, ist das eine Aussage: Eine Mailqueue über 500 Nachrichten ist nicht normal. Das ist Dokumentation.
  • Log-Aggregation (mit Loki, Elastic oder einfach syslog) zeigt, was passiert ist. Die Logs sind das Tagebuch des Systems — automatisch, unausweichlich, nicht vergesslich.

Die Idee: Nicht alles muss von Hand geschrieben werden. Monitoring und Logging produzieren kontinuierlich Dokumentation. Die Kunst besteht darin, diese Daten so aufzubereiten, dass sie auch als Dokumentation verständlich sind — und nicht nur als Rohdaten.

Das 5-Minuten-Prinzip

Alle Strategien oben helfen, aber sie lösen nicht das grundlegende Problem: den Moment, in dem du etwas reparierst und denkst „Das muss ich nicht aufschreiben, das ist nur ein Quick-Fix.“

Hier kommt das 5-Minuten-Prinzip: Wenn du etwas reparierst, nimm dir fünf Minuten Zeit und schreib auf, was das Problem war.

Nicht „ausführlich dokumentieren“. Nicht „ein Confluence-Dokument erstellen“. Fünf Minuten. In dein Notizbuch, in ein README.md im Repo, in den Commit-Message-Body, in den Slack-Kanal — irgendwohin.

## 2026-04-23: Mailqueue stauete sich

**Problem:** Mailqueue auf mx01 lief über, weil Dovecot-AUTH-Timeout auf 10s stand.
**Lösung:** Timeout auf 30s erhöht. Siehe commit abc123.
**Ursache:** Nach dem Update auf Dovecot 2.4 ist der Default-Timeout gesunken.
**Follow-up:** Prüfen, ob 30s ausreichen oder ob wir die Connection-Pooling-Logik anpassen müssen.

Das ist keine perfekte Dokumentation. Aber es ist eine Dokumentation. Und sie ist unendlich viel besser als die Alternative: drei Monate später dasselbe Problem, dieselbe Sucherei, derselbe Aufwand.

Das 5-Minuten-Prinzip funktioniert, weil es den inneren Schweinehund umgeht. „Fünf Minuten“ ist kein „ich muss erst ein Dokument erstellen“. Es ist eine kurze, machbare Investition. Die Hürde ist niedrig genug, dass sie im Alltag überwindbar ist. Und der Effekt kumuliert: Nach einem Jahr hast du eine Sammlung von Problembeschreibungen und Lösungen, die wertvoller ist als jedes Architektur-Wiki.

Das eigentliche Problem

Das Doku-Paradox ist kein Technologie-Problem. Es ist ein Kultur-Problem.

Dokumentation wird als Nachgang behandelt. Als „das, was man macht, wenn die eigentliche Arbeit fertig ist“. Als das, was bei Zeitdruck zuerst gestrichen wird. Als das, was keine Deadline hat und deshalb nie fertig wird.

Aber Dokumentation ist kein Nachgang. Dokumentation ist Teil des Systems.

Ein System ohne Dokumentation ist wie ein Programm ohne Tests. Es mag jetzt funktionieren. Aber du kannst nicht verifizieren, dass es funktioniert. Du kannst es nicht sicher ändern. Du kannst es nicht weitergeben. Es ist fragil.

Die drei Zustände von Dokumentation — gar nicht, veraltet, falsch — sind keine Stadien eines Prozesses. Sie sind Symptome einer Kultur, die Dokumentation als optional betrachtet.

Die Lösungen — Living Documentation, Git-Repositories für Konfigurationen, ZFS-Snapshots, Manpage-Kultur, das 5-Minuten-Prinzip — haben eines gemeinsam: Sie machen Dokumentation nicht optional. Sie bauen sie in den Prozess ein. Sie machen es einfacher, Dokumentation zu erstellen, als sie wegzulassen.

Und das ist der Hebel. Nicht Appell. Nicht „wir sollten mehr dokumentieren“. Sondern Systeme und Prozesse, in denen Dokumentation der Weg des geringsten Widerstands ist.

TL;DR

  • Das Paradox: Doku ist am wichtigsten, wenn sie am schwersten zu erstellen ist. Unter Zeitdruck. Nach einem Ausfall. Wenn der Admin kündigt.
  • Drei Zustände: Gar nicht (ehrlich), veraltet (gefährlich), falsch (aktiv schädlich). Jeder ist schlimmer als der vorherige.
  • Warum nicht: Kein unmittelbarer Nutzen, kein Deadline-Druck, „Das weiß ich im Kopf.“
  • Die Kosten: Langes Onboarding, Single Points of Failure, Update-Angst, Dienstleister-Konflikte.
  • Lösungen: Doku als Code (Ansible, Terraform), ZFS-Snapshots als Change-Log, README-Pflicht, Manpage-Kultur, Git für Configs, Monitoring als automatische Doku.
  • 5-Minuten-Prinzip: Fünf Minuten aufschreiben, was das Problem war. Immer.
  • Dokumentation ist kein Nachgang. Sie ist Teil des Systems.

FreeBSD Wochenrückblick: 4.–11. Mai 2026

Die vergangene Woche war eine der ereignisreichsten im FreeBSD-Projekt seit langem: Zwei Beta-Releases, ein massiver Security-Advisory-Bundle, aufsehenerregende KI-gestützte Schwachstellenfunde und ein neuer Blogpost zum pkgbase-Upgrade-Pfad. Hier ist der Überblick.

FreeBSD 15.1: Beta 1 und Beta 2 veröffentlicht

Der Release-Zyklus für FreeBSD 15.1 nimmt Fahrt auf. Nachdem Colin Percival am 2. Mai 15.1-BETA1 angekündigt hat, folgte bereits am 8. Mai 15.1-BETA2 — der wöchentliche Rhythmus wird eingehalten.

Änderungen in Beta 2 (gegenüber Beta 1)

  • Zstd auf 1.5.7 aktualisiert — aktuelle Upstream-Kompressionsunterstützung
  • less auf v692 aktualisiert
  • bsdinstall nutzt jetzt konsistent pkg.FreeBSD.org für Package-Bootstrap-Operationen
  • nuageinit parst user_data nur noch bei Bedarf als YAML
  • rtadvd(8) beachtet jetzt pltime und vltime in Interface-Deklarationen
  • Diverse Userland-Bugfixes: ifconfig(8), lockf(1), stat(1), tail(1), certctl(8)
  • Kernel-Bugfixes: nullfs, so_splice, vt(4)
  • Verschiedene Manual-Page- und Test-Korrekturen

Verfügbare Architekturen

Images gibt es für amd64, powerpc64, powerpc64le, armv7, aarch64 (inkl. RPI, PINE64, ROCK64-Varianten) und riscv64. Zusätzlich stehen VM-Disk-Images (QCOW2, VHD, VMDK, Raw), OCI-Container-Images (static, dynamic, runtime, notoolchain, toolchain) und Amazon-EC2-AMIs zur Verfügung.

Zeitplan

  • Beta 3 wird für nächste Woche erwartet
  • Release Candidate die Woche darauf
  • 15.1-RELEASE am 2. Juni 2026 — sofern alles planmäßig verläuft

Schwerwiegende Sicherheitslücken — 8 Advisories am 29. April

Am 29. April veröffentlichte FreeBSD einen ganzen Schwung an Security Advisories, die in dieser Woche breit diskutiert wurden:

AdvisoryModulBeschreibungSchwere
SA-26:11amd64Fehlende Large-Page-Verarbeitung in pmap_pkru_update_range()Hoch
SA-26:12dhclientRemote Code Execution über bösartige DHCP-Optionen (CVE-2026-42511)Kritisch
SA-26:13execveLokale Privilegieneskalation über execve(2)Hoch
SA-26:14pfStack-Overflow beim Parsen manipulierter SCTP-PaketeHoch
SA-26:15dhclientRemote auslösbbarer Out-of-Bounds-Heap-Write in dhclientKritisch
SA-26:16libnvStack-Overflow über select()-File-Descriptor-Set-OverflowHoch
SA-26:17libnvHeap-Overflow in libnvHoch

Zusätzlich wurde am 1. Mai EN-26:11 veröffentlicht: Eine Errata-Notice, die ein zu striktes dhclient-Lease-Validation-Verhalten korrigiert — ein Nebenprodukt der Security-Fixes.

Der 21 Jahre alte dhclient-RCE (CVE-2026-42511)

Besonders bemerkenswert: Die Schwachstelle in dhclient (SA-26:12) existierte seit über 20 Jahren im Code. Das BOOTP-Dateifeld wurde ohne Escaping von eingebetteten Doppelquotes in die Lease-Datei geschrieben, was die Injektion beliebiger dhclient.conf-Direktiven ermöglichte — und damit Remote Code Execution nach einem Systemneustart.

KI-gestützte Schwachstellenforschung: AISLE vs. Anthropic Mythos

Am 7. Mai veröffentlichte die Firma AISLE einen Blogpost, der für Aufsehen sorgte: Ihr Multi-Modell-System hatte drei kritische Schwachstellen in FreeBSD entdeckt — unabhängig von und parallel zu den Funden, die Anthropics „Claude Mythos“ gemacht hatte.

AISLEs Funde:

  1. Den 21 Jahre alten dhclient-RCE (CVE-2026-42511)
  2. Einen remoten auslösbaren Heap-Buffer-Overflow in dhclient
  3. Einen Stack-Buffer-Overflow in ping6 (lokale Privilegieneskalation)

Alle drei wurden am 13. April entdeckt, am 14. April gemeldet und am 29. April gepatcht.

Interessant ist die Debatte, die AISLE mit ihrem Fund anstößt: KI-gestützte Sicherheitssysteme können auch mit kleineren, günstigeren Modellen sehr effektiv arbeiten — ein gut designtes System schlägt reine Skalierung durch größere Modelle. AISLE verweist auf ihre Studie, dass Sicherheitsfähigkeit „zerklüftet“ (jagged) ist: Kleine Modelle können bei vielen sicherheitsrelevanten Aufgaben größere übertreffen.

FreeBSD Foundation: „Cleaning Up Critical Infrastructure“

Am 20. April (in dieser Woche noch stark rezipiert) veröffentlichte die FreeBSD Foundation einen ausführlichen Blogpost über das Alpha-Omega Beach Cleaning Project. Kernpunkte:

  • OpenSSL 3.5 LTS wurde rechtzeitig für FreeBSD 15.0 integriert — das avoids einen Unsupported-Fork von OpenSSL 3.0 (EOL September 2026) für über vier Jahre
  • Eine maschinenlesbare Inventarisierung des Basissystems wurde erstellt: über 1.000 Komponenten in einer YAML-basierten Datenbank, darunter 73 Third-Party-Importe
  • SBOM-Generierung über SPDX 2 und SPDX 3 Formate
  • CODEOWNERS-artige Reports für bessere Wartungszuständigkeit
  • Vorbereitung für den Import von pkg ins Basissystem als Teil der pkgbase-Transition

Vermaden: PKGBASE Minor Upgrades mit ZFS Boot Environments

Am 10. Mai veröffentlichte der bekannte FreeBSD-Blogger Vermaden einen praktischen Leitfaden für Minor-Upgrades (z. B. 15.0 auf 15.1) mit PKGBASE und ZFS Boot Environments. Da PKGBASE noch als experimentell markiert ist und freebsd-update(8) für Minor-Releases nicht mehr verfügbar ist, zeigt er zwei Methoden:

  1. Klassische Methode: Neue ZFS BE erstellen, chroot, pkg.repo konfigurieren, pkg upgrade -r FreeBSD-base
  2. Alternative Methode: Nutzung von pkg --chroot und ABI/OSVERSION-Overrides ohne manuelles devfs-Mounting

Beide Methoden erlauben ein sicheres Rollback über ZFS Boot Environments, falls das Upgrade Probleme verursacht.

Q1 2026 Status Report: 45 Einträge

Der FreeBSD Status Report für das erste Quartal 2026 wurde am 23. April veröffentlicht — mit rekordträchtigen 45 Einträgen. Highlights:

  • Cyber Resilience Act (CRA) Readiness Project — Vorbereitung auf EU-Regulierung
  • amd64 FRED-Unterstützung — neue CPU-Flexibilitätsfeatures
  • LinuxKPI 802.11 und Native Wireless Update — Fortschritte bei WiFi-Treibern
  • Suspend/Resume- und Hibernate-Verbesserungen
  • Sylve — eine einheitliche Systemmanagement-Plattform für FreeBSD
  • daemonless — native FreeBSD OCI-Container ohne Daemon
  • KDE auf FreeBSD — Fortschritte bei Plasma 6 und Wayland
  • FreeBSD auf EC2 und STACKIT Cloud Integration
  • bhyve: Full CPUID Control, Management GUI

Ausblick

Mit Beta 3 in der kommenden Woche und dem Release Candidate danach rückt FreeBSD 15.1-RELEASE am 2. Juni schnell näher. Wer auf unterstützten Versionen läuft, sollte die Security-Advisories vom 29. April dringend einspielen — insbesondere den kritischen dhclient-RCE. Und für alle, die pkgbase testen, liefert Vermadens Anleitung einen guten Ausgangspunkt.

Links: