Hoch

ApostropheCMS: Nicht authentifizierte CSV-Importanfragen hinterlassen abgelehnte Uploads im temporären Verzeichnis

  • Veröffentlicht: 20.10.2026
  • Aktualisiert: 20.10.2026 21:26

Zusammenfassung

Ein abgelehnter Upload kann im temporären Verzeichnis des Betriebssystems verbleiben.

Multer speichert die Datei, bevor deren Erweiterung überprüft wird, und im Fehlerpfad der Ablehnung wird diese temporäre Datei nicht bereinigt. Ein nicht authentifizierter Anfragender kann diesen Vorgang mit großen Dateien wiederholen und so kontinuierlich den temporären Festplattenspeicher erschöpfen.

Details

Der betroffene Endpunkt lautet:

POST /api/v1/@apostrophecms/rich-text-widget/generate-csv-table

In packages/apostrophe/modules/@apostrophecms/rich-text-widget/lib/apiRoutes.js schreibt Multer den Upload zunächst nach os.tmpdir(). Der Handler weist anschließend Dateinamen zurück, deren Erweiterung nicht csv entspricht; allerdings erfolgt auf diesem Fehlerpfad keine Bereinigung der durch Multer erstellten Datei.

Die Route erfordert keine Authentifizierung eines Benutzers. Ein reguläres CSRF-Cookie ist ausreichend.

Während der Tests lieferte die Anfrage HTTP 400 mit Only csv files are supported zurück, während der vollständige hochgeladene Inhalt auch nach der Antwort in einer zufällig benannten Datei im konfigurierten temporären Verzeichnis verblieb.

Bezug zu früheren öffentlichen Arbeiten

Überprüft wurde PR #5013,, womit der Upload-Pfad für Rich-Text-CSV von connect-multiparty auf Multer umgestellt wurde. Dieser Bericht betrifft die Bereinigung nach dieser Migration: Die abgelehnte Multer-Datei verbleibt auf der Festplatte – ein Verhalten, das weder im PR noch in der zugehörigen Review-Diskussion beschrieben wurde.

Proof of Concept (PoC)

Erstellen Sie eine kleine Testdatei. Eine größere Datei kann verwendet werden, um das Anwachsen der Festplattenbelegung zu demonstrieren, aber 1 MiB genügen für eine sichere lokale Reproduktion:

bash
dd if=/dev/zero of=rejected.txt bs=1M count=1

Rufen Sie die regulären Website-Cookies ab und senden Sie den abzulehnenden Upload:

bash
curl -c cookies.txt 'http://127.0.0.1:3000/' > /dev/null

curl -i -b cookies.txt \
  -F 'file=@rejected.txt;filename=rejected.txt;type=text/plain' \
  'http://127.0.0.1:3000/api/v1/@apostrophecms/rich-text-widget/generate-csv-table'

Die Antwort lautet HTTP 400. Ein Vergleich des Inhalts des temporären Systemverzeichnisses vor und nach der Anfrage zeigt:

bash
ls -lt /tmp

Eine neue Datei mit zufälligem Namen bleibt bestehen und enthält die hochgeladenen Bytes.

Es ist keine Anmeldung erforderlich. Das wiederholte Absenden der Multipart-Anfrage erzeugt zusätzliche persistente temporäre Dateien.

Auswirkungen

Ein entfernter, nicht authentifizierter Angreifer kann die Partition füllen, die für das temporäre Verzeichnis des Betriebssystems verwendet wird. Sobald diese Partition voll ist, können Apostrophe sowie andere unabhängige Dienste auf demselben Host möglicherweise keine Dateien mehr hochladen, keine temporären Daten mehr erstellen oder den normalen Betrieb einstellen.

Der Angriff erfordert lediglich wiederholte HTTP-Anfragen, und die gespeicherten Dateien verbleiben nach jeder abgelehnten Antwort auf dem System.

Was zu tun ist

Aktualisieren Sie auf ApostropheCMS Version 4.33.0 oder höher.

Betroffene Software

Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.

PlattformPaketAnfällige VersionenBehoben in
npm-Paket apostrophe < 4.33.0 4.33.0

Verweise

CVSS-Wert 7.5/10
CVSS-Vektor
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Schwäche (CWE)
CWE-400, CWE-459, CWE-770
Plattform
npm
Paket
apostrophe
Veröffentlicht
20.10.2026
Aktualisiert
20.10.2026 21:26

Quellen und Lizenzen · Von DockRay bearbeitet oder übersetzt; Rechte und Lizenzen der Quellen bleiben erhalten.

OSV / GitHub Advisory Database - GHSA-qhcq-9pm2-c9w9 - CC BY 4.0

Schwachstellenhistorie: apostrophe

Alle veröffentlichten Schwachstellen dieses Pakets (npm-Paket), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.

Alle (27) im Archiv
Einträge insgesamt
27
Erste → letzte
09.2020 10.2026
Ohne Fix
4
In Angriffen ausgenutzt
0

Verteilung nach Schweregrad

  • Kritisch 2
  • Hoch 8
  • Mittel 13
  • Niedrig 4

Veröffentlichungen pro Jahr

  1. 2020: 2
  2. 2021: 2
  3. 2022: 0
  4. 2023: 0
  5. 2024: 0
  6. 2025: 0
  7. 2026: 23
Schweregrad:
  1. ApostropheCMS: Nicht authentifizierte CSV-Importanfragen hinterlassen abgelehnte Uploads im temporären Verzeichnis dieser Eintrag
    Hoch · 7.5 CVE-2026-113658 < 4.33.0 4.33.0
  2. Hoch · 7.3 CVE-2026-45011 = 4.29.0 keine Korrektur
  3. Kritisch · 9.8 CVE-2021-25979 >= 2.63.0, < 3.4.0 3.4.0

Erkennen Sie Schwachstellen in Ihrer Anwendung

Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.

Anwendung verbinden
DockRay Newsletter

Anwendungssicherheit in Ihrem Postfach

Wichtige Schwachstellen, konkrete Empfehlungen und praktische Tipps für Ihre Anwendungen. Wählen Sie Ihre Technologien und verfolgen Sie, was für Ihr Projekt relevant ist.

  • Eine tägliche Zusammenfassung neuer Schwachstellen, auch kritischer.
  • Benachrichtigungen über wichtige Updates.
  • Praktische Tipps zur Sicherheit und Überwachung von Anwendungen.

Leer lassen, um Meldungen zu allen Technologien zu erhalten.

Kostenlos anmelden. In jeder E-Mail mit einem Klick abmelden.