Średnia

ApostropheCMS: Międzydomenowy token sesji w adresie URL umożliwia przejęcie sesji

  • Ujawniono: 20.10.2026
  • Aktualizacja: 20.10.2026 21:21

Podsumowanie

Mechanizm migracji sesji między domenami w Apostrophe przekazuje jednorazowy token sesji jako parametr zapytania URL i zapisuje go w pamięci podręcznej Mongo. Każdy klient, który przedstawi ten token, po cichu przejmuje pełną sesję docelowego użytkownika (w tym passport.user) bez podawania danych uwierzytelniających.

Szczegóły

packages/apostrophe/modules/@apostrophecms/i18n/index.js:

  • Generowanie tokena przy przepływach między hostami/ustawieniami regionalnymi (L479–487) oraz przekierowanie między lokalizacjami w passport-bridge (passport-bridge/index.js L557–593) umieszcza token w adresie URL.
  • acceptCrossDomainSessionToken (L258–298) odczytuje ?aposCrossDomainSessionToken, przepisuje za pomocą Object.assign zapisaną sesję (plik cookie + passport.user) na req.session, a następnie czyści wpis w pamięci podręcznej w przestrzeni nazw @apostrophecms/i18n:cross-domain-sessions.
  • Oprogramowanie pośredniczące (middleware) bez before: jest rejestrowane dla każdego adresu URL (express findModuleMiddlewareAndRoutes L820–879); zweryfikowano za pomocą APOS_LOG_ALL_ROUTES=1.

PoC

bash
# 0) Anonymous baseline: admin-only draft → 403
# 1) Admin logs in legitimately (token minted into redirect URL):
curl -c admin.cookies -X POST -H "Content-Type: application/json" \
     --data '{"username":"admin","password":"adminpassword","session":true}' \
     http://localhost:3100/api/v1/@apostrophecms/login/login
# 2) Attacker with NO credentials visits the leaked token URL:
curl -c atk.cookies "http://localhost:3100/?aposCrossDomainSessionToken=HUNTING_TOKEN"
#    → 302 Location: / ; attacker now holds a vulnlab.sid SID cookie
# 3) Attacker reads admin-only content via adopted session:
curl -b atk.cookies ".../api/v1/@apostrophecms/page/d576242ve1dkzb12jiiabujd:en:draft"
#    → 200  adopted-session read -> Secret Private Page | secretData = TOP-SECRET-VALUE-abc123
# 4) Cache entry consumed (single-use): {"value":null}

Wpływ

Przejęcie sesji lub konta migrowanego użytkownika przez każdego, kto wejdzie w posiadanie tokena, wraz z odziedziczeniem wszystkich uprawnień danego konta. Ryzyko ujawnienia jest wysokie, ponieważ token znajduje się w adresach URL: w logach serwerów, serwerów proxy i przeglądarek, w historii przeglądania oraz w nagłówku Referer, gdy host docelowy różni się od źródłowego (zamierzony przypadek użycia). Jednorazowy charakter tokena ogranicza okno czasowe ataku, lecz go nie eliminuje.

Co trzeba zrobić

Zaktualizuj pakiet apostrophe do wersji 4.33.0 lub nowszej oraz @apostrophecms/passport-bridge do wersji 1.6.1 lub nowszej. Zgodnie z zaleceniami token powinien być przekazywany za pośrednictwem krótkotrwałego, podpisanego pliku cookie HttpOnly z atrybutem SameSite zamiast parametru w URL, powiązany ze ściśle określoną parą hostów źródłowego i docelowego, wygasać w ciągu kilku sekund i nie trafiać do dzienników zdarzeń.

Czego dotyczy

Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.

PlatformaPaczkaPodatne wersjePoprawka w wersji
Paczka npm apostrophe < 4.33.0 4.33.0
Paczka npm @apostrophecms/passport-bridge < 1.6.1 1.6.1

Odnośniki

Ocena CVSS -
Wektor CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
Słabość (CWE)
CWE-598
Platforma
npm
Paczka
apostrophe, @apostrophecms/passport-bridge
Ujawniono
20.10.2026
Aktualizacja
20.10.2026 21:21

Źródła i licencje · Redakcja lub tłumaczenie: DockRay. Zachowano prawa źródeł i obowiązujące licencje.

OSV / GitHub Advisory Database - GHSA-hhvr-8m24-qqr3 - 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ć.

Wszystkie (27) w archiwum
Wszystkich wpisów
27
Pierwsza → ostatnia
09.2020 10.2026
Bez poprawki
4
Wykorzystywana w atakach
0

Rozkład istotności

  • Krytyczna 2
  • Wysoka 8
  • Średnia 13
  • Niska 4

Ujawnienia w latach

  1. 2020: 2
  2. 2021: 2
  3. 2022: 0
  4. 2023: 0
  5. 2024: 0
  6. 2025: 0
  7. 2026: 23
Istotność:
  1. ApostropheCMS: Międzydomenowy token sesji w adresie URL umożliwia przejęcie sesji ten wpis
    Średnia CVE-2026-113669 < 4.33.0 4.33.0
  2. Wysoka · 7.3 CVE-2026-45011 = 4.29.0 brak poprawki
  3. Krytyczna · 9.8 CVE-2021-25979 >= 2.63.0, < 3.4.0 3.4.0

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.

Podłącz swoją aplikację
Newsletter DockRay

Bezpieczeństwo aplikacji w Twojej skrzynce

Najważniejsze podatności, konkretne zalecenia i praktyczne wskazówki dla Twoich aplikacji. Wybierz technologie i śledź to, co ma znaczenie dla Twojego projektu.

  • Codzienne zestawienie nowych podatności, także krytycznych.
  • Powiadomienia o ważnych aktualizacjach.
  • Praktyczne porady o bezpieczeństwie i monitoringu aplikacji.

Pozostaw puste, aby otrzymywać informacje o wszystkich technologiach.

Zapis jest bezpłatny. Wypiszesz się jednym kliknięciem w wiadomości.