
Schlüsselloser Sicherheitsauditor mit aktiven Sonden für Directus CMS. Weist Datenexposition über öffentliche Rollen, Benutzeraufzählung, nicht authentifizierte Versions-/Schema-Leaks, GraphQL-Introspektion und Feldaufzählung über Suchparameter anhand anonymer Live-Sonden nach. Keine Abhängigkeiten.
Auditiere jede Directus-Instanz auf die Fehlkonfigurationen, die tatsächlich Daten leaken — offener Lesezugriff für die Public-Rolle, Benutzer-Enumeration, unauthentifizierte Versions-/Schema-Leaks, GraphQL-Introspection und das Feld-Enumeration-Orakel über den
search-Parameter — und belege jeden Punkt live mit einer anonymen Probe. Andere Checklisten sagen dir, was falsch sein könnte; dieses Tool holt die Bytes und zeigt dir, was ist.
⚡ In einer Zeile ausführen, ohne Admin-Token, ohne Installation:
npx directus-security --url https://your-directus.example.com
🤝 Soll ich es für dich erledigen? Audit mit festem Umfang — $99 / 24h: Ich verifiziere jeden Befund live und sende einen schriftlichen Bericht mit den exakten Policy-Fixes.
$ npx directus-security --url https://directus.example.com
1 critical, 2 high, 1 medium — 4 CONFIRMED via anonymous probe
CRITICAL /items/posts public-role read enabled — rows reachable anonymously
HIGH /items/posts?search=… search-param field enumeration (CVE-2025-30352 class)
HIGH /items/directus_users user list exposed (name + email)
MEDIUM /server/specs/oas Directus version leaked unauthenticated (CVE-2025-53887 class)
Directus betreibt Headless-Backends bei Tripadvisor, Adobe und Mercedes, und das Standard-Zugriffsmodell macht es sehr leicht, einen Fehler zu machen: Lesen für die Public-Policy aktiviert zu lassen. Das Ergebnis ist eine API, die jeder lesen kann. 2025 brachte ein Bündel unauthentifizierter CVEs, die exakt zu anonymen Proben passen:
search-Query-Parameter enumeriert nicht freigegebene Felder und leakt E-Mails und Passwort-Hashes Zeichen für Zeichen./server/specs/oas offengelegt, sodass Angreifer deinen Build bekannten Exploits zuordnen können.directus-security prüft diese Punkte und bestätigt die echten, indem es exakt die anonyme Anfrage stellt, die ein Angreifer stellen würde — so priorisierst du Fakten statt Vermutungen.
# Probe a live instance (guesses common collection names)
npx directus-security --url https://directus.example.com
# Probe specific collections
npx directus-security --url https://directus.example.com --collections posts,authors
# Learn your exact collection names from a Directus schema snapshot, then probe
npx directus-security --url https://directus.example.com --snapshot ./snapshot.json
# Write a shareable HTML report
npx directus-security --url https://directus.example.com --html report.html
# Static only (no requests sent)
npx directus-security --url https://directus.example.com --no-probe
Die Ausgabe erfolgt als JSON auf stdout (per Pipe in CI verarbeitbar) und als einzeilige Zusammenfassung auf stderr. Der Exit-Code ist nur bei Nutzungsfehlern ungleich null — kopple deine Pipeline an das JSON-Feld summary.
npm i -g directus-security
directus-security --url https://directus.example.com
Keine Abhängigkeiten. Deine Daten und Anmeldedaten verlassen nie deinen Rechner — jede Anfrage geht direkt vom Tool zu deiner Directus-Instanz.
Dieselbe Active-Probe-Philosophie für den Rest des Backend-Stacks, alle MIT-lizenziert:
strapi-security · supabase-security · pocketbase-security · firebase-security · appwrite-security · nhost-security
MIT © Renzo Madueno
📚 Teil von Awesome Backend Security Auditors — die vollständige Sammlung von Active-Probe-Auditoren ohne API-Keys.
| Prüfung | Schweregrad | Wie sie bestätigt wird |
|---|
| Öffentlicher Lesezugriff auf eine Collection | kritisch | anonyme GET /items/{collection}-Anfrage liefert Zeilen |
Feld-Enumeration über den search-Parameter | hoch | anonyme GET /items/{collection}?search=…-Anfrage wird beantwortet (CVE-2025-30352-Klasse) |
Benutzer-Enumeration über /items/directus_users | hoch | anonymer Lesezugriff gibt die Benutzerliste zurück (Name + E-Mail) |
| Unauthentifiziertes Versions-/Schema-Leak | mittel | /server/info oder /server/specs/oas liefert die Version unauthentifiziert (CVE-2025-53887-Klasse) |
| GraphQL-Introspection in der Produktion | mittel | __schema-Abfrage wird auf /graphql oder /graphql/system beantwortet |