Cloudflare hat mit EmDash ein ambitioniertes Projekt vorgestellt: Ein komplett neues CMS, geschrieben in TypeScript, gebaut auf Astro, mit einem radikal anderen Ansatz für Plugin-Sicherheit. Das Timing — 1. April — sorgte für berechtigte Skepsis, aber das Produkt ist real: Der Code liegt auf GitHub, die Architektur ist durchdacht, und Branchengrößen wie Joost de Valk (Gründer von Yoast SEO) haben sich ernsthaft damit auseinandergesetzt.
Für TYPO3-Agenturen ist EmDash kein direkter Konkurrent. Aber die Ideen dahinter verdienen Aufmerksamkeit — insbesondere das Capability-Manifest-Konzept.
Inhaltsverzeichnis
EmDash: Das neue CMS
Was Cloudflare gebaut hat und warum es relevant ist
Das Plugin-Problem
96 % aller WordPress-Lücken stammen aus Plugins
Übertragung auf TYPO3
Drei Konzepte, die sofort anwendbar sind
Capabilities.yaml
Das Manifest-Format für TYPO3-Extensions
Risikobewertung
Scoring-System für Extension-Capabilities
Site Policy
Enterprise-Governance für Extensions
EmDash vs. TYPO3
Runtime-Isolierung vs. Static Analysis
Installation
Composer, CLI-Befehle, GitHub-Repo
EmDash: Das neue CMS von Cloudflare
Am 1. April 2026 hat Cloudflare EmDash veröffentlicht — ein Open-Source-CMS, das sich als "spiritueller Nachfolger von WordPress" positioniert. Der vollständige Quellcode liegt auf GitHub, das Projekt läuft auf Cloudflares eigener Infrastruktur (D1, R2, Workers) oder auf jedem Node.js-Server mit SQLite.
Die Kern-Innovation: Jedes Plugin deklariert in einem Capability Manifest, welche Berechtigungen es benötigt. Nicht deklarierte Fähigkeiten sind physisch unmöglich — durchgesetzt durch v8-Isolates (Cloudflare Dynamic Workers).
Ein Capability Manifest ist eine strukturierte Deklaration aller Subsysteme, auf die ein Plugin zugreifen darf. Vergleichbar mit App-Berechtigungen auf dem Smartphone: Eine Taschenrechner-App, die Kamerazugriff verlangt, wäre sofort verdächtig. Das gleiche Prinzip auf CMS-Plugins angewandt — aber mit technischer Durchsetzung statt nur Transparenz.
Joost de Valk, Gründer von Yoast SEO und eine der einflussreichsten Stimmen im WordPress-Ökosystem, bezeichnete EmDash als das Interessanteste, was dem Content-Management seit Jahren passiert ist. Die Tech-Presse reagierte gemischt: Technisch beeindruckt, aber skeptisch gegenüber den Marktchancen gegen WordPress mit über 43 % Marktanteil und 60.000 Plugins.
Dieses Plugin kann ausschließlich Inhalte lesen und E-Mails senden. Kein Dateizugriff, keine Datenbankmanipulation, kein ausgehender Netzwerkverkehr — technisch unmöglich, nicht nur per Konvention.
Das WordPress-Problem (und warum TYPO3 nicht immun ist)
96 % aller WordPress-Sicherheitslücken stammen aus Plugins. Der Grund ist architektonisch: Ein WordPress-Plugin läuft im selben PHP-Prozess wie WordPress selbst und hat vollen Zugriff auf Datenbank, Dateisystem und Netzwerk. Ein kompromittiertes Plugin bedeutet ein kompromittiertes System.
EmDash löst das radikal: Jedes Plugin läuft in einem eigenen v8-Isolate. Es kann nur die Capabilities nutzen, die es deklariert hat.
TYPO3 hat ein differenzierteres Berechtigungsmodell als WordPress — Backend-Benutzergruppen mit granularen Rechten, ACLs auf Seiten- und Content-Ebene, ein PSR-15-Middleware-Stack für Request-Filterung. Aber auf Extension-Ebene existiert dasselbe Grundproblem: Jede Extension läuft im selben PHP-Prozess und kann prinzipiell auf alles zugreifen. Eine Extension mit einer einzigen Schwachstelle gefährdet die gesamte Installation.
Die Frage ist nicht, welches CMS das sicherere Grundsystem hat. Die Frage ist: Wissen Administrator:innen, was ihre Extensions tatsächlich tun? Welche Tabellen liest EXT:news? Macht EXT:solr ausgehende Netzwerkverbindungen? Überschreibt EXT:gridelements Core-Klassen via XCLASS?
Was wir von EmDash übernehmen
PHP hat keine v8-Isolates. Wir können Extensions nicht physisch voneinander isolieren — zumindest nicht ohne fundamentale Architektur-Änderungen. Aber wir können einen Großteil des Sicherheitsgewinns durch Deklaration und Audit erreichen:
Man braucht keine Runtime-Isolierung, um den Großteil des Nutzens zu erzielen. Allein zu wissen, was eine Extension tut — und das verifizieren zu können — ist transformativ für Enterprise-TYPO3-Governance.
Konkret übertragen wir drei EmDash-Konzepte auf TYPO3:
- Capability Manifests — Jede Extension deklariert in einer
Capabilities.yaml, welche Subsysteme sie nutzt - Static Analysis — Ein Audit-Tool verifiziert die Deklaration gegen den tatsächlichen Code
- Site Policies — Administrator:innen definieren, welche Capabilities erlaubt sind
Das Manifest-Format: Capabilities.yaml
Jede TYPO3-Extension erhält eine neue Datei unter Configuration/Capabilities.yaml:
Administrator:innen sehen sofort: Diese Extension greift auf eigene Tabellen und einige Core-Tabellen zu, macht keine ausgehenden Netzwerkverbindungen und überschreibt kein XCLASS. Risiko: niedrig.
Risikobewertung
Das Audit-Tool berechnet einen Risk Score basierend auf den deklarierten (und erkannten) Capabilities:
| Capability | Gewicht | Begründung |
|---|---|---|
| database:read (eigene Tabellen) | 0 | Normaler Betrieb |
| database:read (Core-Tabellen) | 1 | Liest Systemdaten |
| database:write (Core-Tabellen) | 3 | Modifiziert Systemdaten |
| network:outbound (spezifischer Host) | 2 | Externe Abhängigkeit |
| network:outbound (uneingeschränkt) | 5 | Datenexfiltrations-Risiko |
| xclass:override | 4 | Überschreibt Core-Verhalten |
| auth:provider | 4 | Kontrolliert Authentifizierung |
| site:middleware | 3 | Fängt alle Requests ab |
| eval()/exec() erkannt | 5 | Code-Ausführungsrisiko |
Risikostufen: 0–4 Low, 5–9 Medium, 10–14 High, 15+ Critical.
Das CLI-Tool
Unser Open-Source-Paket webconsulting/typo3-capability-manifest bietet drei Befehle:
Der Generator analysiert den PHP-Code mit nikic/php-parser, scannt Services.yaml, ext_localconf.php, TCA/Overrides/, RequestMiddlewares.php und ext_tables.sql und erzeugt ein vollständiges Manifest.
Site Capability Policy
Für Enterprise-Umgebungen können Administrator:innen definieren, welche Capabilities erlaubt sind:
Ein typo3 capability:policy-check im Build-Prozess verhindert, dass Extensions mit unerlaubten Capabilities deployt werden. Das Policy-File wird versioniert, der Check läuft automatisch — Extension-Governance ohne manuellen Aufwand.
Vergleich: EmDash vs. TYPO3 Capability Manifests
| Feature | EmDash (Cloudflare) | TYPO3 Capability Manifests |
|---|---|---|
| Enforcement | Runtime (v8 Isolate) | Deklarativ + Static Analysis |
| Kann ein Plugin schummeln? | Nein — physisch unmöglich | Ja — aber erkennbar |
| Install-Time Transparenz | Ja | Ja |
| Runtime-Monitoring | Ja | Phase 4 (geplant) |
| Ecosystem-Adoption nötig | Neues Ecosystem | Bestehendes Ecosystem |
| Wert ohne Enforcement | N/A | Hoch — Sichtbarkeit + Governance |
| Sprache | TypeScript | PHP + YAML |
Was die Static Analysis erkennt
Das Tool nutzt nikic/php-parser für AST-basierte Analyse und Pattern-Matching für Konfigurationsdateien:
Beispiel-Manifests: Top TER-Extensions
Das Repository enthält Stub-Manifests für die meistgenutzten TER-Extensions. Hier ein Überblick der Risikobewertungen:
| Extension | Risiko | Wesentliche Capabilities |
|---|---|---|
| news | Low | Kein Netzwerk, kein XCLASS |
| powermail | Medium | Mail, File-Write, Scheduler |
| mask | Medium | Dynamische TCA, File-Write |
| solr | Medium | Netzwerk (Solr), Middleware |
| gridelements | Medium | XCLASS-Overrides |
| container | Low | TCA-Override only |
| vhs | Low | Read-only ViewHelpers |
| ke_search | Low | Kein Netzwerk, lokaler Index |
| yoast_seo | Medium | Middleware, TCA-Override |
| realurl | High | XCLASS, Middleware (Legacy) |
| content_defender | Low | Read-only TCA |
| tt_address | Low | Einfache Adressdaten |
| static_info_tables | Low | Read-only Referenzdaten |
| sr_feuser_register | Medium | Schreibt fe_users, sendet Mails |
Mögliche Roadmap
Phase 1: CLI-Tool + Manifest-Format
Phase 2: Backend-Modul + Composer-Plugin
Phase 3: Community-Adoption + TER
Phase 4: Runtime-Monitoring
Installation und Nutzung
typo3-capability-manifest auf GitHub
Das komplette CLI-Tool mit Static Analysis Engine, Manifest-Schema, Beispiel-Manifests und Unit-Tests. MIT-lizenziert, ready to use.
Fazit
EmDash zeigt, wie CMS-Plugin-Sicherheit im Jahr 2026 aussehen sollte: deklarativ, transparent, auditierbar. Ob EmDash WordPress ablösen wird, bleibt abzuwarten — das Ecosystem-Problem ist real. Aber die Architektur-Ideen dahinter sind sofort anwendbar.
Für TYPO3 bedeutet das: Wir müssen nicht auf Runtime-Isolierung warten. Capability Manifests mit Static Analysis und Policy Enforcement geben uns heute schon die Transparenz und Governance, die Enterprise-Kund:innen brauchen.
Die wichtigsten Erkenntnisse:
- Extension-Sicherheit ist kein WordPress-exklusives Problem — TYPO3 profitiert vom gleichen Ansatz
- Deklaration + Audit liefert einen Großteil des Nutzens von Runtime-Isolierung
- Das Tool ist ab sofort nutzbar —
composer require webconsulting/typo3-capability-manifest - Jede TYPO3-Agentur kann ihre Extensions heute auditieren