
Programmiert seit 2002 – autodidaktisch gelernt, 2012 mit KO-Web selbständig gemacht. Über 100 Projekte, Fokus auf Security, Performance, Automatisierung und Qualität. Heute freiberuflich: DevSecOps-Beratung, Schulungen und Softwareentwicklung.
- DevSecOps
- TYPO3
- PHP
- Sylius
- CI/CD
- AI
- AI Agents
- Content Management Systems
- Startups
- Founding
- de
- en
- es
Podcasts moderiert
Beiträge dieses Autors
Konsultationsbeginn 8. Mai, Frist 3. Juni, Geltungsbeginn 2. August 2026. Vier Pflicht-Profile aus Artikel 50, drei operative Empfehlungen für den DACH-Mittelstand und ein Vorschlag, die Klassifizierungs-Übung nicht weiter zu verschieben.
Vier Achsen: Authentifizierung, Verschlüsselung, Container-Lebenszyklus, Backup/Restore. Was DACH-KMU mit MariaDB-, PostgreSQL- oder MongoDB-Containern in den nächsten vier Wochen anpacken sollten, um nicht unter Audit-Druck nachholen zu müssen.
GitLab CVE-2026-85706: unauthentifizierter Pfad-Traversal in der Commits-API von Self-Managed-Instanzen. CVSS 10.0, aktiv ausgenutzt, CISA-KEV. Betroffene Versionen, Patch und Detection.
Einordnung des Bitwarden/Checkmarx-Supply-Chain-Vorfalls vom 22. April 2026 und warum ich dank boringer Build-Pipelines nicht getroffen wurde.
Wie man Content-Security-Header korrekt über AWS CloudFront und S3 konfiguriert, um die Sicherheit seiner Webanwendungen zu erhöhen.
Ein Überblick über die neuen DNS-Record-Typen SVCB, TLSA und SSHFP in AWS Route 53 und wie man sie sinnvoll einsetzt.
Der Weg von einem einfachen Container-Hosting zu einem hochverfügbaren TYPO3-Cluster – Herausforderungen, Architektur und Sicherheitskonzepte.
Teil 3 der Serie Grundschutz++ als Code. Jedes Image trägt eine signierte OSCAL-Komponentendefinition. Sie nennt nur Anforderungen, für die es bei diesem Build einen Beleg gibt. Der Beitrag zeigt, wie das BSI Komponenten beschreibt, warum Einstellungen kein Beleg sind, wie man die Attestation von außen prüft und was passiert, wenn sich der Katalog ändert.
redis-parser CVE-2026-93435: unbegrenzte Rekursion beim RESP-Parsing lässt ioredis-Clients über einen Stack Overflow abstürzen. CVSS 7.5/8.7, noch kein Patch verfügbar.
TYPO3 14.3.7 und 13.4.35 beheben zwei Sicherheitslücken: Informationsoffenlegung im Lokalisierungs-Assistenten (CVE-2026-77132) und fehlende Autorisierung bei Konfigurations-Kommandos (CVE-2026-85400).
Eine Feldnotiz über den Umzug eines mandantenfähigen mTLS-Netzes von cert-manager auf Pod-Zertifikate. Der Beitrag zeigt, warum die Entscheidung kippte, wie ein Signer je Mandant die Isolation erhält und was beim Umstellen schiefging: Dateirechte, die der kubelet selbst setzt, ein ServiceAccount, der beim Zurückschalten hängen blieb, und eine Argo-CD-Verklemmung.
npm v12 (Release für Juli 2026 angekündigt) setzt allowScripts standardmäßig auf aus — preinstall/install/postinstall und implizite node-gyp-Builds laufen nicht mehr automatisch, ebenso werden Git- und Remote-URL-Abhängigkeiten ohne explizite Freigabe blockiert. Migration über npm approve-scripts.
Sylius 1.12.25/1.13.17/1.14.20/2.1.16/2.2.9 beheben vier Lücken: JWT-Audience-Verwechslung (Admin-Übernahme), Password-Reset-Host-Poisoning, Order-Total-Inflation nach Payment-Capture und ungeprüfte Payment-Request-Actions.
Erfahrungsbericht zur Ablösung eines Renovate-Runners über rund 200 Repositories durch pinup, ein statisches Go-Binary. pinup liest die vorhandene Renovate-Konfiguration, erzeugt vor jeder Änderung einen maschinenlesbaren Plan und nennt für jedes zurückgehaltene Update Grund, Regel und Zeitpunkt. Der Beitrag beschreibt die stillen Fehler im alten Betrieb, den Umstieg ohne geänderte Konfiguration über einen Shadow-Modus, den Clean-Room-Ansatz unter Apache-2.0 und die gemessene Kette vom Paket-Release bis zur Produktion.
CVE-2026-43499 (GhostLock, CVSS 7.8, offengelegt 08.07.2026): Use-after-Free in der Futex-Priority-Inheritance-Cleanup-Logik des Linux-Kernels, im Code seit 2011. Lokale Rechteausweitung zu Root in rund 5 Sekunden, demonstrierter Container-Escape aus Docker/Kubernetes/K3s zum Host. Öffentlicher Exploit-Code auf GitHub. Patch-Rollout je Distribution uneinheitlich.
Eine Feldnotiz über den letzten Hop der Pod-Zertifikat-Migration: die Client-Zertifikate, mit denen sich Traefik bei den Mandanten ausweist. Traefik liest solche Zertifikate nur aus Secrets und lädt Dateien nicht neu. Der Beitrag zeigt den Umweg über den File-Provider, wie ein Prüfsummen-Dateiname den Reload auslöst, wie ein Pilot-Mandant das Risiko klein hielt und warum eine abgelehnte Zertifikatsanfrage abgelehnt bleibt.
5. Mai 2026: Warum das Motto „Menschenrechte sind nicht verhandelbar“ gerade jetzt zählt — zur Kürzungsdiskussion bei Schulbegleitung und der Erwerbsausfallfalle für pflegende Eltern.
Auftakt der Serie zum Betrieb von TYPO3 auf Kubernetes unter IT-Grundschutz. Der Beitrag zeigt, wie die Schutzbedarfsfeststellung für eine TYPO3-Plattform aussieht und warum das Maximumprinzip das Cluster prägt. Er ordnet die relevanten Bausteine zu, von SYS.1.6 und APP.4.4 bis APP.3.1, APP.4.3 und CON.3. Dazu kommen die Anforderungen bei erhöhtem Schutzbedarf und die Rolle von Grundschutz-Check und Risikoanalyse. Am Ende steht die Übersicht über alle vierzehn Teile.
Zweiter Teil der Serie zu TYPO3 auf Kubernetes unter IT-Grundschutz. Er zeigt, wie ein gehärtetes TYPO3-Image entsteht. Die Basis ist minimal und ohne Paketmanager, FrankenPHP liefert im Worker-Modus HTTP und PHP aus einem Prozess. Der Container läuft ohne Root-Rechte, ohne Capabilities und mit einem schreibgeschützten Dateisystem. Jede Maßnahme ist den Anforderungen aus SYS.1.6 zugeordnet.
GHSA-rc52-c4hv-w89p (High) und GHSA-x83g-979r-f5fh (Moderate): Der Payment-Webhook von sylius/mollie-plugin verifiziert nicht, dass eine eingehende Mollie-Payment-ID zur betroffenen Order gehört — Angreifer können fremde Bestellungen ohne Zahlung als bezahlt markieren. Zusätzlich erlauben QR-Code- und Thank-you-Endpunkte das Durchnummerieren von Order-IDs zum Abgriff von Kundendaten. Betroffen: 2.2.8, 3.2.4, 3.3.1 und ältere Stände, sowie die abgekündigten Fremd-Pakete bitbag/mollie-plugin und mollie/sylius-plugin. Fix: 2.2.9 / 3.2.5 / 3.3.2. CVE-Nummern stehen noch aus.
Dritter Teil der Serie zu TYPO3 auf Kubernetes unter IT-Grundschutz. Der TYPO3-Code wird getrennt von der Laufzeit als OCI-Artefakt ausgeliefert. Eine Signatur mit einem Schlüssel im KMS und eine angehängte SBOM machen Herkunft und Inhalt prüfbar. Ein initContainer prüft beides, bevor der Pod startet, und bricht bei Abweichung ab. Der Beitrag vergleicht das mit einem Admission-Webhook und ordnet die Kette SYS.1.6 und APP.4.4 zu.
Teil 4 der Serie TYPO3 auf Kubernetes unter IT-Grundschutz. Der Beitrag zeigt, wie die Anforderung „keine bekannte Schwachstelle mit CVSS 7 oder höher“ technisch durchgesetzt wird: ein Scan des Container-Images mit getrenntem Urteil in den Modi report, warn und block, ein Scan der Lockfiles der Anwendung, OpenVEX für begründete Ausnahmen, ein täglicher Nachscan der laufenden Digests mit Fristen und eine schrittweise Einführung von warn zu block. Bezug zu SYS.1.6.A6, A12, A13, A14 und OPS.1.1.3.
Teil 5 der Serie TYPO3 auf Kubernetes unter IT-Grundschutz. Der Beitrag zeigt, wie jede interne Strecke per mTLS gesichert wird: vom Ingress zum Reverse Proxy, vom Proxy zur PHP-Laufzeit und von der Anwendung zu Datenbank und Cache. Dazu eine eigene CA pro Mandant mit cert-manager, Zertifikate mit 24 Stunden Laufzeit, Neuladen ohne Neustart, MariaDB mit require_secure_transport, Valkey mit Client-Zertifikaten, Überwachung der Ablaufzeit und die Abwägung gegen ein Service Mesh. Bezug zu CON.1, APP.4.4.A7, APP.4.4.A18 und SYS.1.6.A20.
Eine Reflexion zu Diana Hus AI-Company-These und meinem Plan, Moselwal in diese Richtung umzubauen.
TYPO3-CORE-SA-2026-020 / CVE-2026-15305 (CVSS 4.0, Medium): Der MimeTypeValidator für FileUpload- und ImageUpload-Elemente im Form Framework wurde beim Form-Bau registriert, bevor die konkrete Formulardefinition angewendet wurde — dadurch landete er nie in der aktiven Verarbeitungs-Pipeline. Ergebnis: Nutzer konnten Dateien mit beliebigem MIME-Type hochladen, unabhängig von der im Formular konfigurierten Allowlist. Betrifft TYPO3 14.2.0 bis 14.3.4; 13.4-LTS ist nicht betroffen. PHP-Datei-Uploads blieben durch eine separate Sperre blockiert. Fix: TYPO3 14.3.5 LTS, kein DB-Update nötig.
Auftakt der Serie über die Meinungen im Code von pinup. pinup ist ein Go-Nachfolger für einen Renovate-Runner. Der Beitrag erklärt, warum ein Werkzeug für einen einzelnen Bestand streng sein darf. Er erklärt auch, warum Renovate für seinen Kontext trotzdem richtig entscheidet. Dazu listet er die zwölf Entscheidungen mit ihren Terminen und erklärt die Begriffe, die öfter vorkommen. Es geht um Gründe für zurückgehaltene Updates, Mutationstests, Abdeckung, Plugins und Kompatibilität. Weitere Themen sind Labels, Pläne, Byte-Edits, Herkunft von Konfiguration, Abhängigkeiten, Dogfooding und der Rückzug verwundbarer Versionen.
Sommerferienende, ein Rastplatz, ein Satz: „Papa, ich kann nicht aussteigen.“ Notizen aus zwei Jahren mit einem chronisch erkrankten Kind.
Teil 1 der Serie über die Meinungen im Code von pinup. Die Meinung: Ein zurückgehaltenes Update trägt seinen Grund. Dazu gehören die Regel, die es hält, und der Zeitpunkt, an dem die Sperre fällt. Der Beitrag stellt das Log als Alternative dar und erklärt, warum es für Renovate richtig ist. Er nennt den Preis und die Vorfälle aus dem Betrieb. Am Ende steht, wie Typen und Tests die Regel durchsetzen.
CVE-2026-42533 ist ein Heap-Buffer-Overflow (CWE-122) in NGINX Open Source und NGINX Plus, ausgelöst durch eine Race-Bedingung zwischen den zwei Auswertungs-Pässen des map-Direktive-Mechanismus: Referenziert ein String-Ausdruck die nummerierten Capture-Variablen ($1, $2, …) einer regex-basierten map, bevor er die eigene Ausgabevariable der Map referenziert, überschreibt die interne Neuauswertung der Regex den gemeinsam genutzten Capture-State — mit einem vom Angreifer kontrollierten Request als Quelle für Länge und Inhalt des Overflows. Betroffen sind NGINX 0.9.6 bis 1.31.2 sowie NGINX Plus vor 37.0.3.1; behoben in 1.31.3 (Mainline), 1.30.4 (Stable) und Plus 37.0.3.1. CVSSv4 9.2 (Critical) / CVSSv3.1 8.1 (High); der DoS-Pfad (Worker-Crash) gilt als zuverlässig reproduzierbar, ein RCE-Pfad über ASLR-Bypass ist plausibel, aber öffentlich noch nicht demonstriert. Die Schwachstelle ist konfigurationsabhängig und betrifft insbesondere NGINX Ingress Controller, Gateway Fabric, App Protect WAF und Instance Manager, die die NGINX-Engine einbetten.
Eine Debugging-Geschichte in vier Schichten: Warum Renovate externe Composer-Pakete zuverlässig bumpte, meine eigenen moselwal/*-Pakete aber nie. Ursache 1 war ein custom.regex-Manager, der Caret-Ranges als „schon aktuell" liest. Ursache 2: derselbe Manager schreibt nie die composer.lock. Ursache 3, der eigentliche Hammer: composer existierte im Renovate-Container unter dem GitLab-docker-executor gar nicht. Ursache 4, der Bonus-Fund: ein ungefilterter Registry-Eintrag erzeugte einen 404-Sturm und ein stilles Fork-Risiko. Fünf Zeilen geteilte Config plus zwei kleine Änderungen pro Consumer-Repo lösten alle vier.
Warum DevSecOps kein Tool-Problem ist, sondern ein Entscheidungsproblem. Und warum ich mit OnlyOle genau da ansetze.
690 Podcast-Downloads seit Januar. Ein kleiner Meilenstein und eine ehrliche Zwischenbilanz zu unserem Gründer-Podcast.
Eine einfache Leistung wird zum Papierkrieg. Warum müssen pflegende Eltern alles beweisen, während das System nichts halten muss?
Wie ein Mensch, ein KI-Coding-Agent und ein Dependency-Bot auf GitLab jeweils mit eigener Identität signieren — YubiKey, Service-Accounts, GPG, und ein Bug, der alle Signaturen als Unverified zeigte.
Ich programmiere fast täglich. Eine ehrliche Reflexion darüber, wo technische Machbarkeit aufhört und Verantwortung anfängt.
Wer ständig fragt, wann er etwas wird, ist selten bereit dafür. Eine unpopuläre Beobachtung aus 23 Jahren Selbstständigkeit.
Wie ich OpenTofu-Provider als OCI-Artefakte in meiner eigenen Container-Registry spiegle, um tofu init von GitHub und IPv4 unabhängig zu machen — inklusive Manifest-Format, GitLab-Token-Fallstricken und Credential-Bug.
Klingt hart, ist aber so: Ich arbeite lieber mit Automatisierungen als mit Menschen. Warum, liegt weniger an den Menschen als an der Zeit.
Die einen feiern KI-Agenten, die Pentests machen. Die anderen bauen gerade einen Standard, der solche Agenten überhaupt erst identifiziert.
Wie ich Renovates containerbase-Tool-Installation (php/composer) von GitHub-Downloads gelöst habe — und warum am Ende nur eine von zwei GitHub-Abhängigkeiten wirklich verschwunden ist.
Seit ich mein Unternehmen gegründet habe, war mir Qualität wichtiger als schnelle Abschlüsse. Warum das meine Entscheidungen bis heute prägt.
AI-Startup klingt nach Zukunft. Ist oft nur Verpackung. Warum das Label gerade inflationär missbraucht wird.
„Gleich“ ist kein Zeitpunkt. Es ist ein Warnsignal für Chaos und fehlenden Respekt vor Zeit. Warum mich dieses Wort so zuverlässig nervt.
Warum klassisches PMO in modernen Entwicklungsteams nicht mehr funktioniert – und was stattdessen hilft. Eine klare, provokante Einschätzung.
Ich habe ein kleineres Projekt per KI-Agent upgraden lassen. Rector hat geliefert. Alles andere ist liegen geblieben. Ein ehrlicher Erfahrungsbericht.
Ein Kunde hat uns vor fast einem Jahr verlassen. Seine Systeme schicken mir weiter jeden Tag Fehlermeldungen. Niemand reagiert. Außer mir.
Am 24. Oktober 2025 gab es erstmals den Tag der pflegenden Eltern. Warum dieser Tag wichtig ist – aus der Sicht eines Vaters, der selbst pflegt.
Seit ein paar Wochen nehme ich jede Woche zwei Podcasts auf. Über Unternehmertum und Security. Warum das Sinn ergibt und mich selbst überrascht.
Nein, deine KI hat nicht alleine gelernt. Du hast ihr gesagt, was sie tun soll. Warum diese Unterscheidung gerade so wichtig ist.
Ich habe mir doch noch einen Vorsatz für 2025 gefasst: Mehr unternehmen, mehr erleben. Raus aus dem Alltagstrott, rein ins Leben.
Der Fehler, den fast jedes Unternehmen einmal macht. Einfach zu vermeiden, wenn man ihn ernst nimmt. Meine Beobachtung aus 23 Jahren.
Montage sind schwer. Der erste echte Herbsttag war für mich 2025 härter als erwartet. Ein ehrlicher Text über Körper, Kopf und kleine Schritte.
Heute beginnen viele den Tag langsam. Morgen vielleicht mit Kater und großen Plänen. Warum die Veränderung nicht am 1. Januar wartet – ein ruhiger Silvester-Text.
CVE-2026-0770 (GHSA-g22f-v6f7-2hrh, ZDI-CAN-27325) ist eine unauthentifizierte Remote-Code-Execution-Lücke in Langflow: Der /api/v1/validate/code-Endpoint übergibt den Parameter exec_globals ungeprüft an Pythons exec(). GitHubs Advisory Database bewertet die Lücke mit CVSS 4.0 8.9, NVD und ZDI mit CVSS 3.0 9.8. Seit rund 27.06.2026 aktiv ausgenutzt, am 21.07.2026 von CISA in den KEV-Katalog aufgenommen — die zweite Langflow-Schwachstelle dort. Ein bestätigter Patch existiert nach aktuellem Kenntnisstand nicht.
Jedes Tool bekommt ein KI-Label, aber der CSV-Export ist kaputt. Warum mich das nervt – und was Software-Anbieter daraus lernen sollten.
Unsere Branche hat viele Probleme, über die niemand redet. Ein ehrlicher Blick nach innen, mit 23 Jahren Perspektive.
Früher habe ich nach dem Training ein ganzes Kastenweißbrot gegessen – und hatte trotzdem ein Sixpack. Ein ehrlicher Rückblick auf Sport, Ernährung und Alter.
OpenShift gilt als sicherer als Kubernetes. Ich schaue auf Security Context Constraints, SELinux und die Realität im Betrieb – mit klarer Einschätzung.
Gute Technologie arbeitet für Menschen, nicht umgekehrt. Eine ruhige Reflexion darüber, was Tools wirklich leisten müssen – und was nicht.
Eine Feldnotiz über die Prüfung eines kleinen ISMS gegen BSI Grundschutz++. Der Beitrag zeigt, wie aus der Anwendbarkeitserklärung nach ISO 27001 über das offizielle Mapping eine prüfbare Liste von 280 Anforderungen wird. Jede Anforderung wurde gegen Konfiguration und Messung beantwortet. Der wichtigste Befund war keine fehlende Maßnahme. Es war Dokumentation, die nicht mehr zum System passte.
Eine Feldnotiz über Pod-Zertifikate in Kubernetes 1.37. Der Beitrag zeigt, wie ein Pod sein Zertifikat bekommt, wie ein eigener Signer mit KMS-Schlüssel und Policy aussieht und wie CrowdSec von geteilten Passwörtern auf Client-Zertifikate umzieht. Dazu kommen die Regeln des API-Servers, die nirgends dokumentiert sind, das Neuladen erneuerter Zertifikate und zwei Fixes für upstream.
Am 28.–30. Juli 2026 hat das PHP-Projekt einen koordinierten Security-Release für alle vier aktuell unterstützten Linien veröffentlicht: 8.2.33, 8.3.33, 8.4.24 und 8.5.9. Vier Schwachstellen werden geschlossen: CVE-2026-17543 (GHSA-7qpv-r5mr-78m4), eine SQL-Injection in den Erweiterungen PGSQL und PDO_PGSQL über eine Lücke im Escaping der E'...'-Backslash-Syntax; CVE-2026-17544 (GHSA-x692-q9x7-8c3f), ein Out-of-Bounds-Write in bc_str2num() bei BCMaths bccomp()-Funktion; CVE-2026-7260 (GHSA-vc5h-9ppw-p5f3), ein Denial-of-Service-Crash in Phar durch rekursive Symlinks; sowie CVE-2026-9672, ein Upgrade der gebündelten libgd-Bibliothek ohne öffentlich dokumentierte Detail-Beschreibung. Offizielle CVSS-Werte hat php.net nicht veröffentlicht; nach aktuellem Kenntnisstand liegt keine aktive Ausnutzung vor. Praktisch relevant ist vor allem CVE-2026-17543 für jede Codebasis, die Nutzereingaben ohne Parameterbindung in PostgreSQL-String-Literale mit E'...'-Syntax einfügt.
TYPO3-EXT-SA-2026-013 / CVE-2026-46725 (CVSS 4.0, Critical): Die Drittanbieter-Extension „Content Element Selector" (mmc/ceselector) übergibt ein clientseitig kontrollierbares Cookie ungeprüft an PHPs unserialize(). Bei Content-Elementen mit „Persistent Mode: Static" ermöglicht das PHP Object Injection — mit einer öffentlich dokumentierten Gadget-Chain über Monolog-Klassen sogar unauthentifizierte Remote Code Execution. Betroffen: ceselector ≤6.0.0, ≤5.0.0, 4.0.0–4.0.1, ≤3.0.2. Fix: 6.0.1/5.0.1/4.0.2/3.0.3.
Teil 2 der Serie Grundschutz++ als Code. Die Anwendbarkeitserklärung legt fest, was geprüft wird. Als OSCAL-Profil wird sie zu Daten, die Werkzeuge lesen können. Der Beitrag zeigt, wie das Profil aus einer bestehenden Doku entsteht, warum es deterministisch sein muss und wie man Ausschlüsse begründet, obwohl das Format dafür kein Feld hat.
Am 4. August 2026 wurde die Release-Pipeline von keyv und rund einem Dutzend verwandter npm-Pakete (cacheable-Familie, flat-cache, file-entry-cache, cache-manager u.a.) kompromittiert. Ein neu eingefügter preinstall-Hook lädt eine verschlüsselte Bun-Runtime-Payload, die Cloud- (AWS/GCP/Azure), CI/CD- und npm-/GitHub-Credentials erntet, sich selbst über npm Trusted Publishing weiterverbreitet und zusätzlich Autostart-Hooks in .claude/settings.json und .vscode/tasks.json ablegt — Ausführung schon beim Öffnen eines geklonten Repos, auch ohne npm install. Snyk führt den Vorfall als SNYK-JS-KEYV-18515941 (Critical), eine offizielle CVE-Nummer war zum Zeitpunkt dieses Artikels noch nicht vergeben.
Tencents Zhuque Lab hat mit dem KI-gestützten Tool „Corvus AI" eine Use-after-Free-Schwachstelle in der dynamischen SCTP-Adress-Rekonfiguration (ASCONF) gefunden, die seit Kernel 2.6.25 (2008) existiert. Fixes gibt es seit 3. August 2026 in vier Kernel-Linien; Tencent behauptet Root-Zugriff samt Container-Escape auf mehreren Distributionen — eine Behauptung, die bislang unabhängig unbestätigt ist. Ich ordne ein, was gesichert ist, was strittig bleibt, und wie du SCTP notfalls einfach abschaltest.
TYPO3-EXT-SA-2026-025: fuenf Schwachstellen in der Extension „Apache Solr for TYPO3“ — Broken Access Control, Information Disclosure und PHP Object Injection ueber unserialize(). Betroffene Versionen, Patch und Detection.
*beep* *beep* *beep* Es ist morgens 4 Uhr. Die Nacht mal wieder zu Ende. Viel früher als geplant. Viel Früher als es gut wäre. Aufgefwacht. Panik. Unruhe. Angst.
Hot-Take zum IPv8-Internet-Draft: 64-Bit-Adressen mit IPv4-Notation klingen vernünftig, aber der Rest der Spec — zentraler Zone Server, OAuth2 auf Network-Layer, WHOIS-Egress-Validierung, mandatory NIC firmware — ist ein Komplettumbau mit eingebauter Surveillance.
Auseinandersetzung mit dem Konzept Software Bill of Delivery: Eine kritische Würdigung des OCM-Ansatzes, ein Vergleich mit der Composition-Schicht in NixOS+Podman-Setups, und welche DevSecOps-Bausteine (SLSA-Provenance, OpenVEX, Cosign, Verify-on-Deploy) in beiden Welten relevant bleiben.
TYPO3 14.3.3 und 13.4.31: 14 Security-Advisories (SA-2026-006 bis -019) mit 15 CVEs, jede Lücke einzeln analysiert — Form-Framework-SQLi,…
Teil 6 der Ops-Log-Serie: Nach dem Wechsel auf Dual-Stack erreichte der Edge-Proxy die Mandanten-Proxys über IPv6. Die vertrauten weitergereichten Client-Adressen aber nur aus dem IPv4-Pod-Netz. Jeder Besucher erschien deshalb als Edge-Proxy, die Intrusion Detection sperrte dessen Adresse, und der Paketfilter verwarf allen Verkehr des Pods. Der Weg zur Ursache und die Lehre: Jede Änderung an Adressfamilien berührt jede Vertrauensliste.
Drei am 9. Mai 2026 veröffentlichte Lücken in apko verschieben die Vertrauensgrenze in der Wolfi-/Chainguard-Build-Pipeline: Path Traversal, fehlender Hash-Vergleich gegen den signierten Index und ein Type-Assert-Panic. Patch-Pin direkt auf 1.2.7, plus eigene SBOM-Verifikations-Stage als strukturelle Antwort.
Sicherheitsmeldungen von Mai bis September 2026 für PHP-, TYPO3- und Kubernetes-Betreiber: npm-Lieferkette, Linux-Kernel, Webserver, KI-Agenten. Kurz eingeordnet.
Vorfall-Analyse zu CVE-2026-1784: Config-Injection → RCE im OpenShift-Ingress-Operator. Das Feld spec.path eines Route-Objekts wird unzureichend validiert; tenant-kontrollierter Inhalt fließt in die vom ose-cluster-ingress-operator generierte HAProxy-Konfiguration des gemeinsamen Routers. CVSS v3.1 8.8 (AV:L/AC:L/PR:L/S:C/C:H/I:H/A:H), CWE-15. Eintrittsschwelle: Schreibrecht auf Route-Objekte in einem Namespace. Scope Changed — die Wirkung verlässt den Tenant-Namespace und trifft den cluster-weiten Ingress. Fix über Red-Hat-Errata der jeweiligen 4.x-Linie; Stopgap: Admission-Policy auf spec.path.
GHSA-qrc4-49gv-mv9m / CVE-2026-47101 (CVSS 4.0 8.7, CWE-863): LiteLLM validiert bei der API-Key-Erstellung (/key/generate u.ä.) das Feld allowed_routes nicht gegen die Rolle des anfragenden Nutzers — ein internal_user kann sich damit Schlüssel mit Zugriff auf Admin-Routen ausstellen. CVE-2026-47102: /user/update und /user/bulk_update prüfen nicht, welche Felder ein Nutzer an sich selbst schreiben darf — der Nutzer setzt sein eigenes user_role-Feld auf proxy_admin. CVE-2026-40217: Das Custom Code Guardrail führt Python-Code per exec() aus, ohne __builtins__ zu entfernen — __import__, open und eval bleiben erreichbar; ein separater Regex-Bypass am Playground-Endpoint erlaubt zusätzlich Bytecode-Manipulation. Verkettet ergeben die drei Lücken einen Weg von einem gewöhnlichen internen Account zu vollständiger Remote Code Execution auf dem LiteLLM-Proxy-Server — mit Zugriff auf Provider-API-Keys, Datenbank-Credentials und alle durchgeleiteten Prompts/Responses. Betrifft LiteLLM vor v1.83.14-stable. Bislang keine bestätigte Ausnutzung in freier Wildbahn bekannt, aber ein öffentlich dokumentierter funktionierender Exploit-Nachweis. Nachträglich aufgegriffen: Erstveröffentlichung 21.05.2026, GHSA-Update 11.06.2026 — kein 48h-Fund, aber angesichts der Kombination aus Schweregrad und der Tatsache, dass LiteLLM auf diesem Blog wiederholt Thema war, eine bewusste Nachbetrachtung.
Apache mod_http2 Double-Free in Apache 2.4.66 (CVE-2026-23918, CVSS 8.8). DoS trivial, RCE remote auf Debian-/Ubuntu-Default mit APR-mmap-Allokator. Zwei öffentliche PoCs seit Disclosure-Woche, fix in 2.4.67. Ich prüfe, patche und validiere TYPO3- und Sylius-Hosting-Frontlines.
Vorfall-Analyse zur BadHost-Schwachstelle (CVE-2026-48710): Starlette rekonstruiert request.url aus dem Host-Header per String-Konkatenation, das ASGI-Routing greift aber auf scope['path'] zu. Eine path-basierte Auth-Middleware liest damit einen anderen Pfad als der Router entscheidet. MCP-Server sind besonders exponiert, weil die Spezifikation unauthentifizierte OAuth-Discovery-Endpunkte erzwingt. Disclosure 22.05.2026, Fix in Starlette 1.0.1.
Der STDIO-Transport im MCP-SDK ruft jedes Kommando direkt als Subprozess auf. ~200.000 erreichbare Server, 7.000+ Pakete, 150 Mio. Downloads. Anthropic patcht das nicht. Verantwortung bleibt bei den Implementierern.
Die Miasma-Familie folgt dem Entwickler vom Paketmanager in den Editor: Ein Commit pflanzt sechs Dateien, fuenf davon Trigger (SessionStart-Hook in .claude/.gemini, alwaysApply-Regel in .cursor, folderOpen-Task in .vscode, test-Script-Hijack) fuer einen 4,3-MB-Bun-Dropper. Klonen ist sicher, Oeffnen nicht. 113 Repos (Floor) inkl. Azure/durabletask. --ignore-scripts faengt keinen SessionStart-Hook. Mit Mitigation, Detection, Betreiberempfehlung.
CVE-2026-42945 NGINX Rift trifft jeden NGINX 0.6.27–1.30.0 und NGINX Plus R32–R36, wenn die Konfiguration eine rewrite-Direktive mit unbenannter Capture, Fragezeichen-Replacement und Folge-Direktive enthält. Patch ist seit 13.05.2026 verfügbar; die nachhaltigere Mitigation ist die Konfigurations-Disziplin auf benannte Captures.
Vorfall-Analyse zur Miasma-Welle: 32 kompromittierte @redhat-cloud-services-npm-Pakete, Variante des open-sourcten Mini-Shai-Hulud von TeamPCP. Patient Zero war ein kompromittierter Red-Hat-Mitarbeiter-GitHub-Account mit Orphan-Commits an zwei RedHatInsights-Repos; Veröffentlichung via GitHub-Actions-OIDC-Trusted-Publishing inkl. Sigstore. preinstall-Hook führt ein 4,2-MB-Obfuskat aus, räumt GitHub/AWS/GCP/Azure/Kubernetes/Vault/npm/SSH/Docker-Credentials ab, sammelt neu auch GCP-/Azure-Cloud-Identitäten, setzt kitty-monitor-Persistenz und einen destruktiven gh-token-monitor-Dead-Man-Switch. Operative Einschätzung: kritisch. Reihenfolge: isolieren, Persistenz entfernen, dann rotieren.
Rust-npm-Worm IronWorm laeuft ueber einen preinstall-Hook, erntet 86 Umgebungsvariablen samt KI-Provider-Keys und ~/.claude-Credentials, publiziert sich in CI ueber npm Trusted Publishing weiter, exfiltriert ohne C2 ueber ausgetauschte GitHub-Actions-Workflows und versteckt sich per eBPF-Rootkit (das bei Kernel-Lockdown auffliegt). Mit Mitigation, Detection-IOCs, Root-Cause-Deep-Dive und Betreiberempfehlung; Paketliste an JFrog delegiert.
Laufender npm-Lieferketten-Vorfall: ein selbst-replizierender Worm nutzt binding.gyp/node-gyp statt postinstall, laedt die Bun-Runtime, erntet Cloud-/Registry-Credentials, injiziert setup-bun in GitHub-Actions-Workflows und vergiftet weitere Pakete des Opfers. Mit Mitigation, Detection-IOCs und Betreiberempfehlung — Paketliste an die Primaerquelle delegiert.
Planmäßiges GitLab-Sammel-Patch-Release (10.06.2026): zwölf Fixes, vier High. Headline sind zwei CVSS-8.7-Lücken der Enterprise Edition — CVE-2026-6552 (Konto-Übernahme über die Group-SAML-Identity-API, Owner-Vorbedingung) und CVE-2026-10087 (XSS im Analytics Dashboard). Dazu CVE-2026-7250 (unauthentifizierter DoS in der Grape-API, CE/EE) und CVE-2026-9204 (SSRF im Gitaly-Repository-Import, CE/EE). Betroffen nur self-managed unterhalb 18.10.8 / 18.11.5 / 19.0.2; GitLab.com und Dedicated sind versorgt. Eine CI/CD-Drehscheibe hält Code und Secrets zugleich — Patch-Kadenz ist Lieferketten-Sicherheit.
Vorfall-Analyse (Sammelpost) zum Sylius-Security-Release vom 02.06.2026. Drei Advisories im Shop-/Payment-API-Pfad: GHSA-5597-7rmh-97q5 (Cart-FormComponent löscht/ändert abgeschlossene Order, CVSS 6.5, CWE-672/841), GHSA-mr9r-h354-966r (IDOR auf Shop-Payment-Request-Endpoints, CWE-639) und GHSA-6955-hrm5-c4qp (Channel-basierter Zahlart-Bypass, CVSS 4.3, CWE-863). Betroffen: 2.0.0–2.0.17, 2.1.0–2.1.14, 2.2.0–2.2.5. Behoben in 2.0.18 / 2.1.15 / 2.2.6. Keine CVE-IDs, alle Moderate, keine bekannte aktive Ausnutzung. Fix per composer update; je Lücke ein dokumentierter Workaround per Service-Override.
FrankenPHP 1.12.3 schließt CVE-2026-45062 (GHSA-3g8v-8r37-cgjm, CVSS 8.1 High): die <code>splitPos()</code>-Funktion in <code>cgi.go</code> nutzte <code>search.IgnoreCase</code>-Unicode-Equivalence-Folding für non-ASCII-Pfadbytes. Zwei Logikfehler erlauben, dass Dateien wie <code>shellïºphp</code> oder <code>shell.ï½hp</code> als PHP-Skripte ausgeführt werden. Wo der Angreifer eine Datei im FrankenPHP-Web-Root platzieren kann (Upload, File-Storage), wird daraus unauthentisierter RCE. Ich habe für alle Bestandskunden die TYPO3- und Sylius-Container-Images mit FrankenPHP 1.12.3 neu gebaut und ausgerollt.
Hardening-Release FrankenPHP 1.12.4: Underscore-Header-Spoofing am Server geschlossen, gebündelte Caddy-2.11.4- und Mercure-0.24.2-Security-Patches, dazu Worker-Mode-Crash- und Data-Race-Fixes. Kein aktiver 0-Day, aber „jeder sollte updaten“ — mit Mitigation, Detection und Betreiberempfehlung.
Was die Composer-Token-Leak-Schwachstelle auslöst, in welchen CI-Setups sie kritisch ist, wie du patchst — und welche Token-TTLs du für Self-hosted-Runner und GitHub-Apps annehmen musst.
Zwei parallele Composer-Vorfälle am 22. Mai 2026: Tag-Injection über GitHub-Fork-Commits (Laravel-Lang, Aikido) und postinstall-Hook in package.json + Branch-Tracking-Versionen (Socket, 8 Composer-Pakete + 700+ Repos). C2 flipboxstudio.info bzw. parikhpreyash4/systemd-network-helper-aa5c751f.
CVE-2026-40176 und CVE-2026-40261 betreffen Composer in allen Versionen vor 2.9.6 bzw. 2.2.27 LTS. Was für die eigene Build-Pipeline daraus folgt – ohne Aktionismus, mit klaren Schritten.
CVE-2026-6722: Use-after-Free im PHP ext-soap (Objekt-Dedup ueber id/href ohne Refcount-Erhoehung, Apache-Map-UAF, Heap-Grooming via Strings) — unauthentifizierte RCE bei SoapServer-Exposure. Dazu CVE-2026-7261 (UAF SoapServer/Session), -7262 (NULL-Deref/DoS), -7258 (OOB-Read in urldecode, SOAP-unabhaengig) und -6104 (mbstring-Overrun). Fix 8.2.31/8.3.31/8.4.21/8.5.6. Eigene Praxis: SOAP praktisch nicht mehr im Einsatz — abgeschaltet ist nicht gleich nicht geladen. Bewusst kein 48h-Daily-Treffer (Disclosure 12.05.2026).
Vorfall-Analyse zu CVE-2026-48736: SSRF-Schutz-Bypass in Symfony HTTP Client / HTTP Foundation. Der NoPrivateNetworkHttpClient blockiert private Netze über IpUtils::PRIVATE_SUBNETS, die Liste enthielt aber nicht 6to4 (2002::/16), Teredo (2001::/32), NAT64 (64:ff9b::/96, 64:ff9b:1::/48) und IPv4-compatible (::/96). checkIp6() ist ein reiner CIDR-Vergleich und extrahiert das eingebettete IPv4 nie. Hebel deployment-abhängig (IPv6/NAT64-Routing). Empfehlung: Patch plus Egress-Defense-in-Depth. Operative Einschätzung medium, kein offizieller CVSS (NVD noch RESERVED). Schwester-Lage zu CVE-2026-48489, geteilter Patch-Pfad.
Vorfall-Analyse zu CVE-2026-48489: Authorization-Bypass / Local Request Forgery in Symfony Security-HTTP. Bei einer form-login-Firewall mit failure_forward: true übernimmt der DefaultAuthenticationFailureHandler den client-kontrollierten _failure_path als Ziel eines internen Subrequests; weil die Firewall Subrequests bewusst überspringt, läuft der access_control-AccessListener nicht. Ein unauthentifizierter POST mit _failure_path=/admin/... liest GET-Routen hinter einer ^/admin-Regel aus — ohne Fehlkonfiguration. Eintrittsschwelle failure_forward: true (Nicht-Default). Fix-Stände 5.4.53 / 6.4.41 / 7.4.13 / 8.0.13. Operative Einschätzung high, kein offizieller CVSS (NVD noch RESERVED).
Analyse der Symfony-Disclosure-Welle vom 20. Mai 2026 mit sieben CVEs in den vier supported Linien — HtmlSanitizer-Trio, UrlGenerator-Route-Bypass, Mime\Address-CRLF-Injection, X509Authenticator, SymfonyRuntime-Bypass. Stack-Mapping pro Komponente für Symfony-direkt, Sylius und TYPO3 v12.4 LTS / v13.4 LTS / v14.x. Konkrete Aufrufketten: Sylius Customer Mailer, TYPO3 EXT:form Email-Finisher, eigene Mailer-Services. Operativer Entscheidungsblock plus PCRE-Regex-Präzedenz-Erklärung.
CVE-2026-6553 betrifft TYPO3 14.2.0. Der Patch 14.3.0 schließt die Lücke, entfernt die bereits gespeicherten Klartext-Daten aber nicht. Was Mittelständler, die TYPO3 produktiv betreiben, jetzt konkret tun sollten.
Am Abend des 19. Mai 2026 hat das TYPO3 Security Team sechs Extension-Advisories veröffentlicht — von Critical (ceselector-RCE über unserialize-Cookie) über High (news-SQLi, crawler-RCE) bis Medium (tt_address, sf_register, ke_search). Wer einen über eine Patch-Pipeline (Renovate, Dependabot o. ä.) gewarteten Stack betreibt, sieht die sechs Patch-Releases automatisiert in den Build einlaufen. Eine technische Analyse pro Lücke, einschließlich der zwei wiederkehrenden Patterns (PHP-Object-Injection und unsanitisierter SQL-Input) und der ke_search-Dreierkette aus XXE, Path Traversal und Information Disclosure.
Universelle Linux-LPE „Dirty Frag“ trifft alle Kernel seit 2017. Mitigation per Kernel-Modul-Blacklist mit klaren Trade-offs. Achter Trust-/CVE-Post im Cluster, in direkter Linie zu Copy Fail.
Standpunkt/Architektur: TYPO3 nicht als individuelles Container-Image pro Projekt deployen, sondern Runtime (gehärtetes Golden Image: FrankenPHP, PHP, Extensions, Caddy) und Anwendung (TYPO3-Core, vendor, Extensions, Sitepackage) trennen und die Anwendung als signiertes OCI-Artefakt ausliefern. Kein composer install zur Startzeit. Vorteile: kleinere Deployments, schnellere Rollbacks, bessere Supply-Chain, Reproduzierbarkeit — plus offene Grenzen.
Fünf Annahmen, die TYPO3-auf-Kubernetes-Projekte unnötig komplex machen: das zwingende Shared Filesystem, Kubernetes als automatische Hochverfügbarkeit, mehr Pods als Performance-Lösung, Container als Cloud-Native, und Kubernetes für jedes Projekt. Keiner ist ein TYPO3-Problem — alle stammen aus der Single-Server-Welt. Mit der Faustregel, wann Kubernetes sich wirklich lohnt.