Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-46558 — Plane’s V2 asset subsystem vertraute Workspace-Slugs und Asset-UUIDs ohne die Durchsetzung der korrekten Mitgliedschaftsprüfungen, was einem authentifizierten Benutzer erlaubte, Assets in anderen Workspaces zu lesen, zu kopieren, zu löschen und zu überschreiben. | Kitploit
Tools/GitHubGitHub/0xmrma/cve-2026-46558
SchwachstellenanalyseWebanwendungs-ExploitationPenetrationstestsPapers & ForschungLernen & BildungKuratierte Ressourcen
GitHub0xmrma/cve-2026-46558

CVE-2026-46558

Plane’s V2 asset subsystem vertraute Workspace-Slugs und Asset-UUIDs ohne die Durchsetzung der korrekten Mitgliedschaftsprüfungen, was einem authentifizierten Benutzer erlaubte, Assets in anderen Workspaces zu lesen, zu kopieren, zu löschen und zu überschreiben.

Repository anzeigen
7vor 3 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-46558

Das V2-Asset-Subsystem von Plane vertraute Workspace-Slugs und Asset-UUIDs, ohne die korrekten Mitgliedschaftsprüfungen durchzusetzen, was es einem authentifizierten Benutzer ermöglichte, Assets in anderen Workspaces zu lesen, zu kopieren, zu löschen und zu überschreiben.

Einleitung

Ich stieß auf dieses Problem, als ich Plane, die Open-Source-Projektmanagement-Plattform, mit einer sehr spezifischen Frage überprüfte:

Erzwingen die V2-Asset-Endpunkte tatsächlich Workspace-Grenzen, oder vertrauen sie zu sehr auf vom Angreifer bereitgestellte Workspace-Slugs und Asset-IDs?

In diesem Fall lautete die Antwort nein.

Das V2-Asset-Subsystem von Plane legte zwei zusammenhängende Autorisierungsfehler offen, die die Workspace-Isolation für jeden authentifizierten Benutzer durchbrachen:

  • der Workspace-Level-Asset-Endpunkt erzwingt keine Ziel-Workspace-Mitgliedschaft vor Asset-Operationen
  • der Duplizieren-von-Assets-Fluss autorisierte nur den Ziel-Workspace und vertraute der Quell-Asset-UUID, ohne die Zugriffsberechtigung für den Quell-Workspace zu prüfen

Das machte Cross-Workspace-Asset-Missbrauch möglich.

In meinem validierten PoC konnte ein normaler Benutzer in Workspace Bravo:

  • ein privates, hochgeladenes Asset von Alpha herunterladen
  • dieses Asset in Bravos eigenen Workspace duplizieren
  • Alphas ursprüngliches Asset löschen
  • Alphas Workspace-Logo mit vom Angreifer kontrolliertem Inhalt überschreiben

Dieses Problem wurde später als CVE-2026-46558 zugewiesen.

Plane: Plane bei GitHub
CVE: CVE-2026-46558

Dies betraf Plane, das auf seiner offiziellen Website als von 50.000+ Teams weltweit genutzt beschrieben wird. Plane hebt zudem eine starke Open-Source-Adoption hervor, darunter 46.000+ GitHub-Sterne und 1.000.000+ Docker-Pulls, und zeigt Organisationen wie Tencent, Accenture, Microsoft und Amazon.

photo0

Angriffskette

authenticated attacker in workspace B → workspace-level V2 asset route trusts target workspace slug and asset UUID without proper membership checks → presigned read / patch / delete against workspace A assets + duplicate-assets source lookup trusts uploaded source UUID → cross-workspace disclosure, copying, deletion, and branding overwrite


Was Plane tut

Plane ist eine Open-Source-Projektmanagement-Plattform, die zur Verwaltung von Folgendem verwendet wird:

  • Aufgaben
  • Probleme
  • Sprints
  • Dokumente
  • Triage
  • Workspace-weites Branding und Assets

Das bedeutet, dass sein Asset-Subsystem auf einer echten Vertrauensgrenze sitzt.

Die wichtige Frage hier war nicht, ob Plane Uploads unterstützt.

Die eigentliche Frage war:

Erzwingt Plane die Workspace-Isolation, wenn ein authentifizierter Benutzer auf Assets verweist, die einem anderen Workspace gehören?

In diesem Fall tat es das nicht.


Warum dieser Fehler einen Blick wert war

Viele Bewertungen von Multi-Tenant-Anwendungen konzentrieren sich zuerst auf offensichtliche Admin-Endpunkte oder direkte Einstellungsaktualisierungen.

Das übersieht eine sehr verbreitete und reale Fehlerklasse:

sekundärer Objektzugriff über gemeinsame Datei- oder Asset-Subsysteme

Asset-Systeme sind leicht falsch zu implementieren, weil sie oft kombinieren:

  • vom Benutzer kontrollierte Identifikatoren
  • Speicherschicht-Indirektion
  • metadatengetriebene Objektverknüpfung
  • Generierung von presigned URLs
  • mehrere Entitätstypen hinter einer gemeinsamen Route

Genau das ist die Art von Ort, an der Tenant-Grenzen leise schwächer werden.

Bei diesem Problem ging es nicht um Speicherbeschädigung. Es ging nicht um S3 selbst. Es ging nicht um die MIME-Verarbeitung von Uploads.

Es war ein Autorisierungs-Grenzfehler:

  • vom Angreifer kontrollierte Identifikatoren überschritten die Grenze
  • der Server löste Cross-Workspace-Objekte auf
  • die Autorisierung war unvollständig oder fehlte
  • privilegierte Asset-Aktionen wurden dennoch ausgeführt

Das ist genug, um eine echte Schwachstelle zu erzeugen.


Die Grenze, auf die ich mich konzentrierte

Ich bin nicht blind an Plane herangegangen, indem ich zufällige Endpunkte gefuzzt oder UUIDs ohne Modell erraten habe.

Der stärkere Ansatz bestand darin, zuerst die vielversprechendste Isolationsgrenze zu identifizieren.

Für Plane war das das V2-Asset-Subsystem.

Warum?

Weil ein gemeinsames Asset-System gefährlich wird, wenn:

  • mehrere Workspaces existieren
  • hochgeladene Objekte über UUID referenziert werden
  • Workspace-Slugs vom Angreifer kontrollierte Routeneingaben sind
  • die Anwendung erfolgreiche Lookups später in presigned Download- oder Mutationspfade umwandelt

Das war die richtige Grenze, die es zu untersuchen galt.

Und genau dort lebte der Fehler.


Ursache

Es handelte sich eigentlich um zwei zusammenhängende Autorisierungsfehler im selben Subsystem.

Ursache 1: Workspace-Asset-Routen ohne Mitgliedschaftsprüfung

Die Workspace-Level-Asset-Routen wurden durch Folgendes freigegeben:

  • apps/api/plane/app/urls/asset.py:50-56

Die verwundbaren Handler befanden sich in:

  • apps/api/plane/app/views/asset/v2.py:314
  • apps/api/plane/app/views/asset/v2.py:379
  • apps/api/plane/app/views/asset/v2.py:400
  • apps/api/plane/app/views/asset/v2.py:409

Das Problem war einfach.

WorkspaceFileAssetEndpoint akzeptierte einen Workspace-Slug und eine Asset-UUID und löste dann direkt Objekte auf wie:

workspace = Workspace.objects.get(slug=slug)

und:

asset = FileAsset.objects.get(id=asset_id, workspace__slug=slug)

ohne zuerst sicherzustellen, dass der Aufrufer tatsächlich ein autorisiertes Mitglied dieses Ziel-Workspaces war.

Das bedeutete, dass der Endpunkt trotzdem Folgendes konnte:

  • Assets erstellen
  • Assets finalisieren
  • Assets löschen
  • presigned Download-URLs zurückgeben

für Objekte eines anderen Workspaces.

Ursache 2: Duplizieren-von-Assets vertraute der Quell-Asset-UUID

Die Route zum Duplizieren von Assets wurde abgebildet durch:

  • apps/api/plane/app/urls/asset.py:100-101

Die verwundbare Logik befand sich in:

  • apps/api/plane/app/views/asset/v2.py:736-780

Der Ziel-Workspace hatte einen Autorisierungsdekorator. Aber der Quell-Asset-Lookup hatte keinen.

Das Quellobjekt wurde geladen mit:

original_asset = FileAsset.objects.filter(id=asset_id, is_uploaded=True).first()

Das bedeutete, dass der Aufrufer nur benötigte:

  • gültigen Zugriff auf den Ziel-Workspace
  • eine Quell-Asset-UUID, die hochgeladen war

Es gab keine Prüfung, ob der Aufrufer dem Quell-Workspace angehörte, dem das Asset tatsächlich gehörte.

Das ist der gesamte zweite Fehler.


Warum dies ein Sicherheitsproblem ist, nicht nur eine schlechte Zugriffslogik

Der wichtige Unterschied ist die Cross-Workspace-Auswirkung.

Viele Autorisierungsfehler werden heruntergespielt mit:

„es erfordert trotzdem eine Anmeldung“

Das verfehlt den Punkt.

Die eigentliche Frage ist nicht:

„Ist der Aufrufer authentifiziert?“

Die eigentliche Frage ist:

„Ist der Aufrufer für den spezifischen Workspace und das spezifische Asset, auf das eingewirkt wird, autorisiert?“

Bei Plane war diese Antwort nein.

Das verwandelt das, was wie eine gewöhnliche Objektbehandlung aussieht, in ein echtes Multi-Tenant-Sicherheitsproblem.

Es gibt einen klaren Unterschied zwischen:

  • authentifiziertem Zugriff innerhalb des eigenen Workspaces
  • und authentifiziertem Zugriff, der die Grenze eines anderen Tenants überschreitet

Dieses Problem war eindeutig der zweite Fall.


PoC

Ich habe das Problem lokal gegen Plane Community Edition 1.2.3 validiert, mit zwei gewöhnlichen Benutzern in zwei nicht verwandten Workspaces:

  • Alpha im Workspace alpha-20260323072017
  • Bravo im Workspace bravo-20260323072017
Tool herunterladen