Postiz

Eine CVE Numbering Authority betreiben

Postiz ist eine CNA mit MITRE als TL-Root und GCVE Numbering Authority 125. Ich betreibe das Programm: Zuweisung, Bewertung, Dokumentation und Offenlegung.

Wie es läuft

Eine CNA zu betreiben hat weniger mit Werkzeugen zu tun als mit Disziplin.

Ein Fund ist nicht gemeldet, bevor er eingegrenzt, nach einem erklärten Maßstab bewertet, einer Schwächenkette zugeordnet, in einen gültigen Datensatz geschrieben und zu einem von beiden Seiten vereinbarten Termin offengelegt wurde. Ein Screenshot in einem Chatverlauf ist keine Meldung.

An denselben Maßstab halte ich meine eigenen Funde.

Der Bestand

17 veröffentlichte Advisories. 15 CVEs. Drei kritisch.

Das höchste mit 10.0: beliebige Codeausführung und Token-Abfluss über einen CI-Workflow. Danach 9.9: Übernahme eines Super-Admin-Kontos durch Fälschung eines JWT auf dem Weg über einen fremden Auth-Anbieter. Dann eine Reihe von Funden hohen Schweregrads zu gespeichertem XSS, unbeschränktem Datei-Upload durch vorgetäuschten MIME-Typ und nicht authentifizierter SSRF mit vollem Lesezugriff.

Die Häufungen lesen

Acht dieser Advisories sind Server-Side Request Forgery. Anlegen von Webhooks, Abrufen von RSS, ein URL-Loader, ein Endpunkt zum Hochladen per URL, ein öffentlicher Streaming-Endpunkt, eine Umgehung einer Weiterleitung, und ein TOCTOU-DNS-Rebinding-Problem, das jede URL-Prüfung auf einmal ausgehebelt hat.

Das letzte ist das nützliche. Wenn ein einzelner Fund jeden vorhandenen Prüfer umgeht, lautet die Antwort nicht: ein besserer Prüfer. Sie lautet: Prüfen war für dieses Problem die falsche Maßnahme.

Eine Häufung dieser Größe sagt etwas über das Produkt und nicht über die Entwickler. Ein Social-Media-Planer existiert, um in Ihrem Auftrag Dinge abzurufen und zu veröffentlichen. Ausgehende Anfragen an Angreifer-beeinflussbare URLs sind seine Aufgabenbeschreibung. Fehlerklassen, die aus dem Zuschnitt eines Produkts folgen, brauchen strukturelle Antworten.

Zahlungs-Callbacks sind die zweite Häufung: eine nicht authentifizierte Vergabe von PRO auf Lebenszeit über einen Zahlungs-Webhook, eine Umgehung der Abrechnungsdurchsetzung und fälschbare Einlösecodes für Lifetime-Deals. Dieselbe Lehre, andere Fläche. Was aus einem nicht authentifizierten Callback heraus Berechtigungen vergibt, muss prüfen statt vertrauen.

Schwächenketten, keine Schwächenetiketten

Datensätze bekommen CWE-Ketten statt einer einzelnen Kennung, damit die Ursache im Datensatz landet und nicht nur das Symptom.

CNA operations

Eine laufende CVE Numbering Authority
Postiz ist eine CNA mit MITRE als TL-Root. Ich betreibe das Programm, statt daran teilzunehmen.
CVE-Zuweisung und -Veröffentlichung
Entscheidungen zum Geltungsbereich, Vergabe von Kennungen und Veröffentlichung bis in den öffentlichen Bestand.
CVSS 3.1 und 4.0
Beide im aktiven Einsatz. Vektor und Begründung werden aufgeschrieben, nicht nur die Zahl.
Dokumentation von CWE-Ketten
Schwächen als Ketten dokumentiert, damit die Ursache im Bestand landet und nicht nur das Symptom.
CVE-JSON-5.1-Datensätze
Direkt gegen das 5.1-Schema verfasst.
Koordinierte Offenlegung über GHSA
Embargo-Handhabung, Kommunikation mit Meldenden, zeitlich abgestimmte Veröffentlichung.
Zusätzlich eine GCVE Numbering Authority
Postiz ist im GCVE-Verzeichnis GNA 125, neben der CNA. Kennungen werden als GCVE-125-YYYY-NNNNN vergeben, unabhängig von einer zentralen Blockzuteilung.
Die GNA läuft auf meiner eigenen Plattform
Die Endpunkte für Zuteilung, Veröffentlichung, Dump und Konformität, die GCVE für GNA 125 nennt, werden alle von GAdvisory unter postiz.gadvisory.org bedient. Der Verzeichniseintrag verweist auf Software, die ich geschrieben habe.

Eine Postiz-Schwachstelle melden

Coordinated disclosure, by email or through GAdvisory. Findings in my own software are a different programme with a different scope, and the Gelhaus Solutions policy covers those.