Mittel

ApostropheCMS import-export: NoSQL-Injection über update-key-Wert erlaubt das Abgleichen und Überschreiben eines unidentifizierten Dokuments

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

Zusammenfassung

Die Update-by-Key-Funktion von @apostrophecms/import-export ermöglicht es, dass ein importiertes Dokument eine Eigenschaft <field>:key trägt (beispielsweise slug:key), deren Wert verwendet wird, um ein bestehendes Dokument zur Aktualisierung zu finden, anstatt ein neues einzufügen. getUpdateKey()/insertOrUpdateDocWithKey() (lib/methods/import.js) verwenden diesen Wert direkt und ohne Bereinigung als MongoDB-Abfragewert:

js
const matchingDraftPromise = manager.findForEditing(
  req.clone({ mode: 'draft' }),
  {
    aposMode: 'draft',
    [updateField]: doc[updateKey]
  }).toObject();

Archivdokumente werden mit EJSON geparst (siehe lib/formats/gzip.js), wodurch Objekte wie { $ne: null } als Live-Werte wiederhergestellt werden. Dies entspricht derselben nicht vertrauenswürdigen Datenquelle und demselben Wiederherstellungsmechanismus, der in diesem Modul bereits für findSingletonAposDocId/findParkedAposDocId in GHSA-79qf-vqgc-7xx3 behoben wurde. Diese Fehlerbehebung betraf insertOrUpdateDocWithKey jedoch nicht, sodass dieselbe Fehlerklasse hier weiterbesteht: Ein manipulierter Eintrag "slug:key": { "$ne": null } in der aposDocs.json eines Archivs führt dazu, dass der Import ein vorhandenes Dokument abgleicht (und anschließend aktualisiert), das der Autor des Archivs eigentlich nie angegeben hat, anstatt dass der Abgleich fehlschlägt.

Auswirkungen

Die Ausnutzung erfordert lediglich eine authentifizierte Sitzung mit Importberechtigung für den Zieltyp (die integrierte Contributor-Rolle verfügt darüber, was der Voraussetzung von GHSA-79qf-vqgc-7xx3 entspricht) und keinerlei Interaktion durch Administratoren. Da der Abgleich einen MongoDB-Operator anstelle eines exakten Werts verwendet, ist er nicht auf ein Dokument beschränkt, dessen Identifikationsfeld der Importeur bereits kennt: Jedes vorhandene Dokument, auf das der Importeur generische Bearbeitungsrechte besitzt und das den Operator erfüllt (was { $ne: null } trivial für jedes Dokument mit einem Nicht-Null-Wert in diesem Feld erfüllt), kommt infrage. Apostrophes Berechtigungsfilter findForEditing, nicht die Update-Key-Logik, ist der einzige Mechanismus, der einschränkt, welches Dokument tatsächlich abgeglichen und überschrieben wird.

Praktisch verifiziert: Eine Anfrage mit Contributor-Rolle, die ein Dokument mit "slug:key": { "$ne": null } importierte, wendete ihren Inhalt auf einen bestehenden, nicht verwandten Artikelentwurf an und überschrieb dessen Titel, obwohl der Importeur den tatsächlichen Slug des Artikels nie angegeben hatte.

Betroffene Versionen

Bestätigt auf dem HEAD des main-Branches zum Stand 2026-09-04, packages/import-export/lib/methods/import.js.

Vorgeschlagene Fehlerbehebung

Bereinigen Sie doc[updateKey] zu einer einfachen Zeichenkette (entsprechend der bereits für type/aposLocale/parkedId in GHSA-79qf-vqgc-7xx3 implementierten Lösung), bevor der Wert in einer Abfrage verwendet wird, und fallen Sie auf den Insert-Pfad zurück, wenn es sich um keine nutzbare Zeichenkette handelt.

Was zu tun ist

Aktualisieren Sie auf @apostrophecms/import-export Version 3.7.0 oder höher.

Betroffene Software

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

PlattformPaketAnfällige VersionenBehoben in
npm-Paket @apostrophecms/import-export < 3.7.0 3.7.0

Verweise

CVSS-Wert 5.4/10
CVSS-Vektor
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L
Schwäche (CWE)
CWE-284, CWE-943
Plattform
npm
Paket
@apostrophecms/import-export
Veröffentlicht
20.10.2026
Aktualisiert
20.10.2026 21:27

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

OSV / GitHub Advisory Database - GHSA-jqw5-w6h3-44g6 - CC BY 4.0

Schwachstellenhistorie: @apostrophecms/import-export

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.

Einträge insgesamt
4
Erste → letzte
03.2026 10.2026
Ohne Fix
0
In Angriffen ausgenutzt
0

Verteilung nach Schweregrad

  • Kritisch 1
  • Mittel 3

Veröffentlichungen pro Jahr

  1. 2026: 4
  1. ApostropheCMS import-export: NoSQL-Injection über update-key-Wert erlaubt das Abgleichen und Überschreiben eines unidentifizierten Dokuments dieser Eintrag
    Mittel · 5.4 CVE-2026-113662 < 3.7.0 3.7.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.