Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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-33146 — Eine öffentliche Freigabe sah im Seitenbaum sauber aus, aber der Such-Endpunkt erzählte eine andere Geschichte. In Docmost konnten eingeschränkte Unter-/Kinder-Seiten, die für Betrachter öffentlicher Freigaben verborgen waren, dennoch über öffentliche Freigabe-Suchergebnisse durchsickern. | Kitploit
Tools/GitHubGitHub/0xmrma/cve-2026-33146
SchwachstellenanalyseInformationsbeschaffungWebsicherheitPenetrationstestsPapers & ForschungLernen & Bildung
GitHub0xmrma/cve-2026-33146

CVE-2026-33146

Repository anzeigen
vor 1 MonatNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

Eine öffentliche Freigabe sah im Seitenbaum sauber aus, aber der Such-Endpunkt erzählte eine andere Geschichte. In Docmost konnten eingeschränkte Unter-/Kinder-Seiten, die für Betrachter öffentlicher Freigaben verborgen waren, dennoch über öffentliche Freigabe-Suchergebnisse durchsickern.

Teilen

CVE-2026-33146

Eine öffentliche Freigabe sah im Seitenbaum sauber aus, aber der Such-Endpoint erzählte eine andere Geschichte. In Docmost konnten eingeschränkte untergeordnete Seiten, die vor öffentlichen Freigabebetrachtern verborgen waren, dennoch über die öffentlichen Freigabe-Suchergebnisse durchsickern.

Einleitung

Ich fand dieses Problem bei der Überprüfung von Docmost, einer Open-Source-Plattform für kollaborative Wikis und Dokumentation, mit einer sehr einfachen Frage:

Wenn eine Seite absichtlich vor einem öffentlichen Freigabebetrachter verborgen wird, respektiert dann jedes öffentliche Feature dieselbe Einschränkungsgrenze?

In diesem Fall lautete die Antwort nein.

Eine eingeschränkte untergeordnete Seite konnte im öffentlichen Freigabebaum verborgen bleiben, während sie dennoch über den öffentlichen Freigabe-Such-Endpoint durchsickerte.

Das Problem wurde akzeptiert und erhielt die CVE-2026-33146.

Docmost: Docmost auf GitHub
CVE: CVE-2026-33146

Die offizielle Website von Docmost präsentiert es als ein unternehmensreifes On-Premises-Wiki mit 3 Mio.+ Downloads und gibt an, dass es von Teams in Organisationen wie Vilnius City, Bechtle, der australischen Regierung, dem Roten Kreuz und ETS Quebec verwendet wird.

photo0

Angriffskette

öffentliche übergeordnete Freigabe mit aktivierten Unterseiten → eingeschränkter Nachkomme aus dem öffentlichen Baum ausgeschlossen → Angreifer fragt öffentliche Freigabe-Suche ab → Titel und Ausschnitt der eingeschränkten untergeordneten Seite werden preisgegeben


Was Docmost tut

Docmost ist eine kollaborative Wiki- und Dokumentationsplattform.

Es bietet:

  • freigegebene Seiten
  • öffentliche Freigabelinks
  • verschachtelte Seitenbäume
  • Organisation von Inhalten auf Arbeitsbereichs- und Bereichsebene
  • Suche über freigegebene Inhalte

Das bedeutet, dass das öffentliche Freigabemodell eine echte Sicherheitsgrenze darstellt.

Die wichtige Frage war hier nicht, ob Docmost Seiten öffentlich teilen kann.

Die eigentliche Frage war:

Wenn Docmost entscheidet, dass eine untergeordnete Seite eingeschränkt ist und für einen öffentlichen Freigabebesucher nicht sichtbar sein soll, gilt diese Einschränkung dann überall im öffentlichen Freigabefluss?

In diesem Fall tat es das nicht.


Warum dieser Fehler einen Blick wert war

Viele Sicherheitsüberprüfungen stoppen zu früh, sobald sie eine in der Benutzeroberfläche verborgene Seite sehen.

Das reicht nicht aus.

Die stärkere Frage ist diese:

Setzt jeder Backend-Pfad dieselbe Sichtbarkeitsentscheidung durch?

Das ist wichtig, weil Sicherheitsgrenzen nicht durch das Aussehen der Schnittstelle definiert werden.
Sie werden dadurch definiert, was der Server tatsächlich zurückgibt.

Hier verhielt sich der öffentliche Baum-Endpoint sicher:

  • eingeschränkte Nachkommen waren versteckt

Aber der öffentliche Freigabe-Suchpfad verhielt sich anders:

  • eingeschränkte Nachkommen beeinflussten weiterhin die Ergebnisse
  • ihre Titel wurden preisgegeben
  • ihre hervorgehobenen Inhaltsausschnitte wurden preisgegeben

Das machte dies zu einem echten Problem der Autorisierungs- und Informationsoffenlegung, nicht nur zu einer Inkonsistenz der Darstellung.


Die Grenze, auf die ich mich konzentrierte

Ich bin nicht an Docmost herangegangen, indem ich zufällig Routen gefuzzt und darauf gehofft habe, dass etwas Interessantes auftaucht.

Der stärkere Weg war, zuerst eine Vertrauensgrenze zu wählen.

Für Anwendungen, die Folgendes unterstützen:

  • öffentliches Teilen
  • verschachtelte Objekte
  • Seitenspezifische Einschränkungen
  • Inhaltssuche

ist eine der besten Fragen:

Setzt die Suchebene genau dieselbe Autorisierungsgrenze durch wie die Navigationsebene?

Diese Frage wird besonders wertvoll, wenn:

  • ein übergeordnetes Objekt öffentlich ist
  • Nachkommen unterschiedliche Sichtbarkeitsregeln haben
  • die Suche über einen separaten Servicepfad implementiert wird

Genau dort zeigte sich dieses Problem.


Ursache

Der Fehler lag nicht darin, dass Docmost die eingeschränkte Seite im normalen öffentlichen Baum nicht versteckt hat.

Der Fehler lag darin, dass die öffentliche Suche diese gleiche Einschränkungslogik nicht beachtet hat.

Aus der Quellcode-Überprüfung verwendete der öffentliche Baumfluss eine einschränkungsbewusste Traversierung der Nachkommen.

Relevanter Bereich:

  • apps/server/src/core/share/share.service.ts

Dieser Pfad schloss eingeschränkte Nachkommen absichtlich aus, indem er Folgendes verwendete:

  • getPageAndDescendantsExcludingRestricted(...)

Aber der öffentliche Freigabe-Suchfluss folgte einem anderen Pfad.

Relevante Bereiche:

  • apps/server/src/core/search/search.controller.ts
  • apps/server/src/core/search/search.service.ts

Dort sammelte der Code Nachkommen mit:

  • getPageAndDescendants(...)

Das bedeutete, dass eingeschränkte Nachkommen für die Suche im Geltungsbereich blieben.

Im öffentlichen Freigabekontext ist das sehr wichtig, da der Suchzweig ohne einen normalen authentifizierten Benutzerberechtigungskontext läuft. Sobald eingeschränkte Nachkommen in die durchsuchbare Seitenmenge aufgenommen wurden, konnten ihre Metadaten über die Antwort durchsickern.

Warum dies ausnutzbar ist

Weil der Angreifer kein authentifiziertes Konto benötigt.

Er benötigt nur:

  • einen gültigen öffentlichen Freigabeschlüssel
  • in der Freigabe enthaltene Unterseiten
  • Kenntnis oder Vermutungen über Suchbegriffe, die wahrscheinlich in versteckten Nachkommen vorkommen

Sobald diese Bedingung erfüllt ist, kann ein öffentlicher Besucher den Freigabe-Such-Endpoint abfragen und folgende Informationen abrufen:

  • versteckte Seitentitel
  • hervorgehobene Textausschnitte
  • den Nachweis, dass eine eingeschränkte untergeordnete Seite unter der freigegebenen übergeordneten Seite existiert

Das reicht aus, um eine Vertraulichkeitslücke zu schaffen, selbst wenn der vollständige Seiteninhalt nicht zurückgegeben wird.


Was dies zu einem Sicherheitsproblem macht, nicht nur zu unterschiedlichem Endpoint-Verhalten

Der wichtige Unterschied ist, dass die Anwendung das beabsichtigte Sicherheitsmodell bereits klar signalisiert.

Der öffentliche Baum-Endpoint verbirgt eingeschränkte Nachkommen.

Die eigentliche Frage ist also nicht:

„Gibt die Suche zufällig eine breitere Ergebnismenge zurück?“

Die eigentliche Frage ist:

„Verletzt die Suche eine Autorisierungsentscheidung, die bereits anderswo für dieselbe öffentliche Freigabegrenze durchgesetzt wird?“

Bei Docmost war das der Fall.

Das verwandelt dies von:

  • inkonsistenter Funktionalität

in:

  • inkonsistente Zugriffskontroll-Durchsetzung

Deshalb ist dies eine echte Schwachstelle.


PoC

Ich habe das Problem validiert, indem ich die beiden relevanten öffentlichen Endpoints nebeneinander verglich.

Fall 1: Öffentlicher Baum verbirgt die eingeschränkte untergeordnete Seite korrekt

Zuerst testete ich den normalen öffentlichen Baum-Endpoint mit dem öffentlichen Freigabeschlüssel.

Beispielanfrage:

root@kitploit:~
POST /api/shares/tree HTTP/1.1
Host: 127.0.0.1:6752
Content-Type: application/json

{
  "shareId": "public-share-key"
}

Die Antwort gab nur die öffentliche untergeordnete Seite im Seitenbaum zurück.

Repräsentatives Ergebnis:

root@kitploit:~
{
  "pageTree": [
    {
      "id": "public-child",
      "title": "Public roadmap"
    }
  ]
}

Damit war das erwartete Produktverhalten festgelegt:

  • das eingeschränkte Kind war absichtlich vor dem öffentlichen Besucher verborgen

Fall 2: Öffentliche Freigabe-Suche gibt die eingeschränkte untergeordnete Seite dennoch preis

Dann fragte ich den öffentlichen Freigabe-Such-Endpoint mit einem Begriff ab, der im eingeschränkten Nachkommen vorkam.

Beispielanfrage:

root@kitploit:~
POST /api/search/share-search HTTP/1.1
Host: 127.0.0.1:6752
Content-Type: application/json

{
  "shareId": "public-share-key",
  "query": "salary"
}

Die Antwort enthielt trotzdem das eingeschränkte Kind:

root@kitploit:~
{
  "items": [
    {
      "id": "public-child",
      "title": "Public roadmap",
      "highlight": "release plan and milestones"
    },
    {
      "id": "restricted-child",
      "title": "Payroll Q4",
      "highlight": "salary bands and bonus targets"
    }
  ]
}

Das bewies die Kernaussage:

  • das eingeschränkte Kind war im öffentlichen Baum versteckt
  • sickerte aber dennoch durch die öffentliche Freigabe-Suche durch

Warum die beiden Reproduktionen wichtig sind

Der stärkste Aspekt dieses Problems ist nicht die zweite Anfrage allein.

Es ist der Kontrast zwischen den beiden Endpoints.

Erstens

Es zeigt, dass das Produkt bereits ein beabsichtigtes Einschränkungsmodell für öffentliche Freigaben hat.

Der eingeschränkte Nachkomme soll für den öffentlichen Besucher nicht sichtbar sein.

Zweitens

Es beweist, dass der Suchpfad genau diese Grenze durchbricht.

Das macht es schwerer, das Problem als erwartetes Suchverhalten oder eine Dokumentationslücke abzutun.

Die Anwendung selbst legt die Regel durch die Baumantwort fest und verletzt sie dann durch die Suchantwort.

Das sind starke Beweise.


Was der Leck einem Angreifer tatsächlich gibt

Dieses Problem legt nicht beliebige Inhalte im gesamten Arbeitsbereich offen.

Sein Umfang ist enger als das.

Aber innerhalb des betroffenen öffentlichen Freigabe-Teilbaums gibt es einem Angreifer dennoch nützliches unbefugtes Wissen:

  • versteckte Dokumenttitel
  • hervorgehobene Ausschnitte aus versteckten Inhalten
  • Bestätigung, dass eingeschränkte Nachkommen existieren
  • Hinweise auf Gehaltsabrechnung, Rechtliches, Planung, Anmeldedaten oder interne Abläufe, abhängig vom Dokumentinhalt

Selbst kurze Ausschnitte können von Bedeutung sein.

Ein Titel wie:

  • Gehaltsabrechnung
  • Einstellungsplan
  • Rechtsentwurf
  • Kundenproblem
  • Anmeldedaten-Rotation

schafft bereits einen Sicherheitswert für einen Angreifer.

Obwohl dies letztendlich als Mittel eingestuft wurde, handelt es sich dennoch um ein gültiges Vertraulichkeitsproblem mit einem klaren und vertretbaren Grenzverstoß.


Schweregrad und Klassifizierung

Dieses Problem wurde zugewiesen:

  • CVE-2026-33146

Der Schweregrad der Beratung war:

  • Mittel
  • CVSS: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:N

Diese Bewertung spiegelt eine engere Vertraulichkeitslücke wider und keinen vollständigen unbefugten Dokumentenzugriff.

Der wichtige Punkt ist, dass das Problem dennoch gültig ist.

Die Behauptung hier ist nicht:

  • vollständiges Lesen der Seite
  • Offenlegung des gesamten Arbeitsbereichs
  • Integritätsauswirkung
  • Verfügbarkeitsauswirkung

Die Behauptung ist:

  • ein öffentlicher Freigabebesucher kann Metadaten von einer eingeschränkten untergeordneten Seite abrufen, die das Produkt absichtlich an anderer Stelle im selben öffentlichen Freigabefluss verbirgt

Das ist eine echte autorisierungsbezogene Informationsoffenlegung.


Warum dies dennoch eine Meldung wert war

Manche Leute weisen Metadatenlecks zu schnell ab.

Das ist ein Fehler.

Die eigentliche Frage ist, ob die durchgesickerten Daten eine beabsichtigte Grenze überschreiten.

Hier taten sie es.

Wenn die Anwendung sagt:

  • dieses eingeschränkte untergeordnete Element sollte für öffentliche Freigabebetrachter nicht sichtbar sein

aber ein öffentlicher Endpoint dennoch preisgibt:

  • seinen Titel
  • einen Teil seines Inhalts

dann ist das Vertraulichkeitsmodell gescheitert, selbst wenn die Auswirkungen begrenzt sind.

Das macht es meldenswert.

Saubere, abgegrenzte und reproduzierbare Fehler wie dieser sind genau die Art von Problemen, die helfen, gutes Urteilsvermögen bei Sicherheitsüberprüfungen zu demonstrieren.


Analyse der Behebung

Die sicherste Richtung für eine Behebung ist, die öffentliche Suche dieselbe einschränkungsbewusste Nachkommenlogik verwenden zu lassen wie der öffentliche Baumfluss.

In der Praxis bedeutet das, dass der Freigabe-Suchzweig keine Nachkommen mit:

root@kitploit:~
getPageAndDescendants(...)

auflisten sollte.

Er sollte sich stattdessen an der sichereren öffentlichen Freigabe-Traversierung orientieren und Folgendes verwenden:

root@kitploit:~
getPageAndDescendantsExcludingRestricted(...)

Eine alternative Behebung wäre, die breitere Aufzählung beizubehalten und eingeschränkte Nachkommen explizit herauszufiltern, bevor die Suchanfrage Ergebnisse zurückgibt.

Aber das sauberere Design ist einfach:

die Suchgrenze sollte der Navigationsgrenze entsprechen

Das ist die Sicherheitseigenschaft, die versagt hat.


Offenlegung

Dieses Problem wurde privat über den Sicherheitsmeldefluss von GitHub gemeldet.

Der Bericht zeigte:

  • das beabsichtigte sichere Verhalten über /api/shares/tree
  • das inkonsistente anfällige Verhalten über /api/search/share-search
  • die zugrunde liegende Ursache auf Quellcode-Ebene
  • einen konkreten Reproduktionspfad

Das Problem wurde akzeptiert und zugewiesen:

CVE-2026-33146

Der endgültige Schweregrad der Beratung war Mittel, was besser zu dem engeren Leckumfang passt, als eine breitere Kritikalität behaupten zu können.

Das schwächt die Gültigkeit des Fundes nicht.

Es definiert seine Auswirkungen nur präziser.


Was dieser Fehler tatsächlich lehrt

Die wichtigste Lektion hier ist einfach:

etwas in einem öffentlichen Endpoint zu verstecken, reicht nicht, wenn ein anderer öffentlicher Endpoint es immer noch preisgibt.

Viele Entwickler denken bei der Autorisierung nur an den offensichtlichen Rendering-Pfad:

  • Seitenbaum
  • Seitenansicht
  • Haupt-Benutzeroberfläche

Aber die eigentliche Grenze ist breiter.

Man muss auch fragen:

  • beachtet die Suche die gleichen Regeln?
  • beachteten Nebenkanäle die gleichen Regeln?
  • beachteten Metadatenantworten die gleichen Regeln?

Bei Docmost war die Antwort nein.

Das ist die eigentliche Erkenntnis.


Kernpunkte

  • Öffentliche Freigabefunktionen müssen dasselbe Sichtbarkeitsmodell über Navigations- und Suchpfade hinweg durchsetzen
  • Metadatenlecks sind immer noch von Bedeutung, wenn sie eine beabsichtigte Autorisierungsgrenze überschreiten
  • Der Seitenweise Endpunkt-Vergleich macht diese Art von Problem viel stärker
  • Eingeschränkte Nachkommen sollten niemals durchsuchbar bleiben, wenn sie vor demselben öffentlichen Betrachter verborgen sind
  • Ein enger Umfang macht einen gültigen Fehler nicht der Meldung unwürdig
  • Gute Sicherheitsüberprüfung bedeutet oft, Konsistenz zu testen, nicht nur Abstürze oder vollständige Umgehungen zu finden

Schlussworte

Diese Schwachstelle ging nicht um auffällige Payloads oder komplexe Exploit-Ketten.

Es ging darum, eine sehr praktische Frage zur Vertrauensgrenze zu stellen.

Docmost verbarg die eingeschränkte Seite an einer Stelle.
Und ließ sie dann an einer anderen durchsickern.

Deshalb wurde dies zu CVE-2026-33146.

Tool herunterladen