ApostropheCMS: GET /api/v1/@apostrophecms/page/:id umgeht viewRole-Beschränkung und legt viewPermission-geschützte Felder offen
Zusammenfassung
Der REST-Endpunkt getOne für Seiten wendet weder typbezogene viewRole-Beschränkungen noch Feld-Redizierungen via viewPermission an. Ein Benutzer mit Editor-Rechten, der eine Dokument-_id kennt, kann den vollständigen Inhalt von Seiten, die Administratoren vorbehalten sind, sowie deren privilegierte Felder auslesen. Der Endpunkt getAll setzt beide Beschränkungen hingegen korrekt durch.
Details
Befund 3 — viewRole-Umgehung:
modules/@apostrophecms/page/index.js legt getRestQuery(req, omitPermissionCheck = false). The getAll path calls publicApiCheckAsync offen und durchläuft die gesamte Query-Builder-Pipeline einschließlich der viewRole-Filterung. Der getOne-Pfad nutzt einen abweichenden Codepfad, der diese Pipeline überspringt.
Ein Seitentyp, der mit viewRole: 'admin' deklariert ist, ist über GET /api/v1/@apostrophecms/page?type=secretPage unzugänglich (gibt 403 für einen Editor zurück), wird jedoch durch GET /api/v1/@apostrophecms/page/:id:en:published an denselben Editor vollständig ausgeliefert.
Befund 4 — viewPermission-Feldleck:
Felder, die mit viewPermission: { action: 'edit', type: '@apostrophecms/page' } versehen sind, werden im getAll-Pfad von removeForbiddenFields entfernt, jedoch in getOne unverändert zurückgegeben. Ein Editor, der eine Dokument-_id kennt, kann alle durch viewPermission beschränkten Felder einsehen.
Proof of Concept
# Log in as editor, get session jar
EDITOR_JAR="..."
# getAll — correctly blocked
curl -b "$EDITOR_JAR" \
"http://TARGET/api/v1/@apostrophecms/page?type=secretPage"
# → 403 Forbidden
# getOne — bypassed, returns full document including viewPermission fields
curl -b "$EDITOR_JAR" \
"http://TARGET/api/v1/@apostrophecms/page/ADMIN_PAGE_ID:en:published"
# → 200 OK, full doc including secretField value
Auswirkungen
Editoren können den gesamten Inhalt jeder Seite lesen – einschließlich solcher, die über viewRole auf Administratoren beschränkt sind –, sofern sie die _id kennen oder erraten können. Durch viewPermission geschützte sensible Feldwerte werden ebenfalls vollständig offengelegt. Dadurch wird das Modell für Inhaltszugriffskontrollen auf jeder Site untergraben, die diese Dekoratoren nutzt.
Was zu tun ist
Aktualisieren Sie das Paket apostrophe auf Version 4.34.0 oder höher.
Betroffene Software
Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.
| Plattform | Paket | Anfällige Versionen | Behoben in |
|---|---|---|---|
| npm-Paket | apostrophe | < 4.34.0 | 4.34.0 |
Verweise
- https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-vh56-5m88-39rq
- https://nvd.nist.gov/vuln/detail/CVE-2026-112957
- https://github.com/apostrophecms/apostrophe/commit/06e4b377f3c360f9e89c32dccd7e505ad5ddf498
- https://github.com/apostrophecms/apostrophe/commit/40b989b1a9dd23d30029b8ce7668634265cfe5ea
- https://github.com/apostrophecms/apostrophe
- https://github.com/apostrophecms/apostrophe/releases/tag/apostrophe@4.34.0
- CVSS-Vektor
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N- Schwäche (CWE)
CWE-862- Plattform
- npm
- Paket
apostrophe- Veröffentlicht
- 21.10.2026
- Aktualisiert
- 21.10.2026 20:25
Quellen und Lizenzen · Von DockRay bearbeitet oder übersetzt; Rechte und Lizenzen der Quellen bleiben erhalten.
OSV / GitHub Advisory Database - GHSA-vh56-5m88-39rq - 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.
- Einträge insgesamt
- 33
- Erste → letzte
- 09.2020 10.2026
- Ohne Fix
- 4
- In Angriffen ausgenutzt
- 0
Verteilung nach Schweregrad
- Kritisch 2
- Hoch 9
- Mittel 18
- Niedrig 4
Veröffentlichungen pro Jahr
- 2020: 2
- 2021: 2
- 2022: 0
- 2023: 0
- 2024: 0
- 2025: 0
- 2026: 29
-
ApostropheCMS: GET /api/v1/@apostrophecms/page/:id umgeht viewRole-Beschränkung und legt viewPermission-geschützte Felder offen dieser Eintrag
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.