Podatności ApostropheCMS
39 znanych podatności CVE w ApostropheCMS, przetłumaczonych i ocenionych.
- CVE-2026-113711Wysokie
W ApostropheCMS przed wersją 4.33.0 (oraz import-export przed 3.7.0) trasy importu wywołują bigUploadMiddleware bez wczesnego callbacku autoryzacji. Nieuwierzytelnione żądania mogą wykonać inicjalizację uploadu, zapis chunków, przetwarzanie tymczasowe i zadeklarowane przez atakującego sprzątanie, zanim późniejsza kontrola użytkownika odrzuci import.
- CVE-2026-113710Średnie
ApostropheCMS przed wersją 4.33.0 ma endpoint samoobsługowej zmiany hasła, który weryfikuje bieżące hasło, ale nie korzysta z mechanizmu licznika nieudanych prób, ograniczania, opóźnienia ani blokady modułu logowania. Atakujący z ważną uwierzytelnioną sesją może wielokrotnie zgadywać bieżące hasło bez otrzymania blokady lub ograniczenia. Problem naprawiono w wersji 4.33.0.
- CVE-2026-113670Średnie
ApostropheCMS przed wersją 4.33.0 ma w rdzeniowym REST API stron odczyt pełnych dokumentów stron z .permission(false) w getOne oraz w zrzucie drzewa all=1, co omija sprawdzenia viewRole typu strony, visibility: private i visibility: loginRequired. Nieuwierzytelnieni odwiedzający i kontrybutorzy o niskich uprawnieniach mogą odczytać treść stron przeznaczonych tylko dla administratorów i niepublicznych za pomocą _id/slug. Problem naprawiono w wersji 4.33.0.
- CVE-2026-113668Średnie
ApostropheCMS przed wersją 4.33.0 ma trasę REST GET /api/v1/<piece-type>/:_id/locales (oraz równoważną trasę stron), która nie stosuje bramki publicApiCheckAsync wymuszanej przez inne trasy odczytu ApostropheCMS. Nieuwierzytelniony wywołujący może zapytać tę trasę dla dowolnego _id dokumentu i dowiedzieć się, czy dokument istnieje oraz w jakich lokalizacjach jest opublikowany — ujawnienie istnienia dokumentu i metadanych lokalizacji, które API odczytu powinno normalnie chronić. Problem naprawiono w wersji 4.33.0.
- CVE-2026-113667Średnie
W integracjach CAPTCHA (Form, login-recaptcha, login-hcaptcha) dla ApostropheCMS token odpowiedzi użytkownika jest wstawiany bez kodowania do żądania weryfikacji u dostawcy. Spreparowane tokeny mogą przemycać parametry żądania i zakłócać weryfikację CAPTCHA oraz chronione nią formularze lub logowanie. Możliwe jest automatyczne sondowanie obejścia, ale nie potwierdzono skutecznego obejścia CAPTCHA ani ujawnienia sekretu.
- CVE-2026-113666Wysokie
W db-connect przed 1.1.0 i ApostropheCMS przed 4.33.0 konto z dostępem view-draft może przesłać ścieżkę wykluczenia projekcji przechodzącą przez łańcuch prototypu konstruktora do współdzielonego elementu prototypu, gdy używany jest adapter SQLite, PostgreSQL lub multipostgres. Helper unsetNestedField usuwa wtedy współdzielony element runtime, powodując trwałe skutki dla integralności i dostępności procesu; domyślny adapter MongoDB nie jest podatny.
- CVE-2026-113662Średnie
W module import-export ApostropheCMS przed wersją 3.7.0 uwierzytelniony użytkownik z dostępem do importu dla docelowego typu może podać obiekt lub operator jako wartość klucza aktualizacji, powodując dopasowanie zapytania importu do niezidentyfikowanego istniejącego dokumentu, który użytkownik ma ogólne uprawnienie do edycji. Normalny filtr uprawnień findForEditing nadal ogranicza kandydatów, więc luka nie pozwala na nadpisanie dowolnej chronionej treści bez uprawnień.
- CVE-2026-113660Średnie
W ApostropheCMS przed wersją 4.33.0 API exist-in-locale pozwala uwierzytelnionemu użytkownikowi o niskich uprawnieniach ustalić, czy ograniczone dokumenty istnieją w określonym locale i trybie, w tym w trybie roboczym. Endpoint zwraca identyfikatory zlokalizowanych dokumentów bez stosowania kryteriów autoryzacji na poziomie dokumentu. Luka została naprawiona w wersji 4.33.0.
- CVE-2026-113655Średnie
W ApostropheCMS przed wersją 4.33.0 uwierzytelniony redaktor z uprawnieniami do edycji zwykłej strony zagnieżdżonej pod ograniczonym rodzicem może użyć operacji przenoszenia stron w obrębie tego samego rodzica, aby zmienić kolejność rodzeństwa bez uprawnień do tworzenia w tym rodzicu. Obejście dotyczy wyłącznie kolejności rodzeństwa, a nie dowolnej modyfikacji treści, utraty poufności ani tworzenia ograniczonego zagnieżdżenia.
- CVE-2026-113653Średnie
W ApostropheCMS przed wersją 4.33.0 viewRole nie jest stosowana do anonimowych odwiedzających, gdy deweloper udostępnia obiekty użytkowników przez publicznie renderowaną relację lub jawnie włączone publiczne API. Niewystarczająco ograniczone szablony, w tym serializacja całego powiązanego obiektu użytkownika, mogą warunkowo ujawnić pola użytkownika, ale hasła są przechowywane osobno i nie są objęte problemem.
- CVE-2026-112958Średnie
W ApostropheCMS przed wersją 4.34.0 zdefiniowane w projekcie pole stylu widgetu o dowolnej formie może przenieść kontrolowany przez redaktora cudzysłów do atrybutu stylu inline, ponieważ serializator opakowania nie stosuje kodowania atrybutów HTML. Cudzysłów może zakończyć atrybut stylu i wstrzyknąć wykonywalne atrybuty podczas renderowania opublikowanej treści lub szkicu wyświetlanego przez użytkownika o wyższych uprawnieniach.
- CVE-2026-112957Średnie
ApostropheCMS w wersji przed 4.34.0 ma endpoint REST getOne dla stron, który nie stosuje ograniczeń typu viewRole ani redakcji pól viewPermission. Użytkownik na poziomie edytora, znający _id dokumentu, może odczytać pełną treść stron dostępnych tylko dla administratorów wraz z uprzywilejowanymi polami, podczas gdy endpoint getAll poprawnie egzekwuje oba ograniczenia.
- CVE-2026-112956Średnie
ApostropheCMS to open-source'owy system zarządzania treścią dla Node.js. Przed wersją 3.7.1 modułu import-export, kontynuacja duplikatu importu akceptuje wybory zamiany kontrolowane przez klienta bez powiązania ich z analizą po stronie serwera należącą do użytkownika lub autoryzacji kanonicznego celu. W przypadku typu lokalizowanego z włączonym importem, współpracownik z uprawnieniami do edycji szkiców może przekroczyć granicę publikacji, wybierając opublikowany dokument do zamiany, chociaż obecna ocena opiera się na przeglądzie poprawek, a nie na powtórzonej reprodukcji end-to-end. Problem został naprawiony w wersji 3.7.1.
- CVE-2026-112953Średnie
W module import-export ApostropheCMS przed wersją 3.7.1 przewidywalne nazwy plików archiwów eksportu pozwalają nieuwierzytelnionemu żądającemu pobrać eksport innego użytkownika z publicznie czytelnego magazynu eksportów, zanim archiwum wygaśnie lub zostanie usunięte. Użytkownik z uprawnieniami do eksportu musi najpierw utworzyć archiwum, a witryny z wyłączonymi eksportami, prywatnym magazynem przesyłania lub uwierzytelnionym dostarczaniem przesyłania nie są narażone tą ścieżką pobierania przez sieć.
- CVE-2026-112952Średnie
W ApostropheCMS przed wersją 4.34.0 żądanie POST /api/v1/@apostrophecms/doc/slugTaken z ciałem { "slug": "target-slug" } zwraca wartość logiczną wskazującą, czy slug jest używany we wszystkich typach dokumentów i poziomach widoczności, bez filtra uprawnień lub typu. Każdy zalogowany użytkownik (w tym edytorzy) może wyliczyć przestrzeń slugów prywatnych stron, wersji roboczych i zarchiwizowanej zawartości.
- CVE-2026-112951Średnie
W ApostropheCMS przed wersją 4.34.0 pole koloru akceptuje końcową zawartość po prawidłowym prefiksie rgb() lub hsl(), ponieważ walidacja TinyColor nie wymaga dopasowania całej wartości do koloru. Uwierzytelniony użytkownik z prawami edycji może zapisać dowolny HTML po prawidłowym prefiksie koloru. Gdy zapisana wartość jest renderowana, ładunek wykonuje się, co prowadzi do przechowywanego XSS.
- CVE-2026-53609Krytyczne
ApostropheCMS to system zarządzania treścią oparty na Node.js, który w wersjach do 4.30.0 pozwala na nieautoryzowane modyfikacje prototypu obiektów przez uwierzytelnionych edytorów. Wykorzystanie operatora `$pullAll` umożliwia zapis dowolnych wartości do `Object.prototype`, co prowadzi do obejścia autoryzacji na wszystkich punktach końcowych REST API.
- CVE-2026-113669Średnie
W ApostropheCMS przed wersją 4.33.0 oraz passport-bridge przed wersją 1.6.1 migracja sesji między hostami lub lokalizacjami umieszcza jednorazowy token sesji bearer w URL przekierowania. Klient, który uzyska i wykorzysta wciąż ważny, niewykorzystany token przed jego pierwszym użyciem, może przejąć powiązaną sesję, w tym poprzez przepływ cross-locale passport-bridge. Problem naprawiono w ApostropheCMS 4.33.0 i passport-bridge 1.6.1.
- CVE-2026-113665Niskie
ApostropheCMS to open-source'owy system zarządzania treścią dla Node.js. Przed wersją 4.33.0 moduł powiadomień udostępnia endpointy REST PATCH i DELETE, które wykonują operacje bezpośrednio na kolekcji MongoDB bez weryfikacji uwierzytelnienia żądającego lub własności powiadomienia. W rezultacie nieuwierzytelniony atakujący, który uzyska prawidłowy identyfikator powiadomienia, może zmodyfikować lub trwale usunąć powiadomienie innego użytkownika.
- CVE-2026-113664Średnie
W module import-export ApostropheCMS przed wersją 3.7.0 uwierzytelniony importer może przesłać wpis tar, którego znormalizowana ścieżka docelowa wskazuje katalog, omijając ochronę przed podciągiem ścieżki nadrzędnej. Otwarcie tego katalogu jako strumienia zapisu powoduje nieobsłużony błąd systemu plików, który może zakończyć proces Node.js. Źródło potwierdza ten statyczny prymityw, ale nie pełny exploit ani kontrolowany odczyt/zapis plików.
- CVE-2026-113659Średnie
W ApostropheCMS przed wersją 4.33.0 nieuwierzytelniony atakujący może wysłać spreparowany link, którego query string jest automatycznie parsowany przez apos.http.parseQuery, gdy uwierzytelniona ofiara załaduje stronę z pakietem administracyjnym. Parser akceptuje specjalne klucze ścieżki __proto__, constructor i prototype, umożliwiając mutację prototypu w przeglądarce, która może dotrzeć do niebezpiecznego ujścia DOM i wykonać skrypt w sesji ofiary. Anonimowi odwiedzający nie ładują podatnego kontekstu administracyjnego. Luka została naprawiona w wersji 4.33.0.
- CVE-2026-113658Wysokie
ApostropheCMS to open-source'owy system CMS dla Node.js. Przed wersją 4.33.0 nieuwierzytelniona trasa konwersji Rich Text CSV zapisuje przesłany plik multipart do katalogu tymczasowego systemu przed sprawdzeniem rozszerzenia i nie usuwa pliku, gdy walidacja go odrzuci. Powtarzane duże odrzucone przesłania mogą trwale zużywać pojemność dysku tymczasowego i zakłócać działanie ApostropheCMS oraz innych usług na tej samej partycji.
- CVE-2026-113649Średnie
W module import-export przed wersją 3.7.1 oraz w rdzeniu ApostropheCMS przed wersją 4.34.0 redaktor, który może importować włączony typ treści, ale nie ma silniejszej roli publikacji, może spowodować, że pomocniki zapisu importu utworzą, zastąpią lub usuną opublikowane warianty bez normalnych uprawnień do publikacji i kontroli cyklu życia.
- CVE-2026-112955Średnie
ApostropheCMS to open-source'owy system zarządzania treścią dla Node.js. Przed wersją 3.7.1 modułu import-export, uwierzytelniony importer może przesłać archiwa, których zdekompresowane bajty, liczba wpisów i rozmiary wpisów nie są ograniczone przed autoryzacją typu dokumentu, a błędy ekstrakcji lub parsowania mogą pozostawić artefakty staging i wyodrębnione bez bezwarunkowego czyszczenia. Już wzmocnione ścieżki przed uwierzytelnieniem i błędów zapisu są oddzielne, a obecny wpływ end-to-end na odmowę usługi z tej pozostałej ścieżki pozostaje przedmiotem walidacji przez opiekunów. Problem został naprawiony w wersji 3.7.1.
- CVE-2026-112954Średnie
W ApostropheCMS przed wersją 4.34.0 publiczny typ REST API korzystający z publicApiProjection może ujawniać informacje o wykluczonych polach wyszukiwania lub sortowania poprzez oracle'e przynależności do wyników wyszukiwania i kolejności sortowania. Zwracane pola nadal są filtrowane przez projekcję, więc problem pozwala na ukierunkowane wnioskowanie o ukrytych wartościach, a nie na nieograniczony zrzut pól.
- CVE-2026-110904Średnie
ApostropheCMS w wersjach przed 4.33.0 pozwala na obejście uwierzytelniania przy odczycie stron przez REST API, co można wywołać żądaniem /api/v1/@apostrophecms/page?all=1.
- CVE-2026-71553Wysokie
ApostropheCMS to system zarządzania treścią oparty na Node.js. W wersji 4.32.0 i wcześniejszych, PATCH /api/v1/article/:id akceptuje dziedziczoną ścieżkę toString.call i przekazuje ją przez moduł narzędziowy do apos.util.set() i apos.util.get(), co pozwala uwierzytelnionemu edytorowi nadpisać właściwość call funkcji Object.prototype.toString i spowodować trwałą awarię procesu (denial of service) do czasu restartu.
- CVE-2026-63670Średnie
ApostropheCMS to open source'owy system zarządzania treścią oparty na Node.js. Przed wersją 2.17.6, funkcja sanitizeHtml() może przepuścić niedozwolony wykonywalny markup przez packages/sanitize-html/index.js, gdy textarea lub xmp jest zawarte w allowedTags, ponieważ dosłowny ukośnik po nazwie znacznika końcowego surowego tekstu jest traktowany jako tekst przez htmlparser2, a handler ontext emituje tę treść bez escapowania, podczas gdy przeglądarka parsuje następujący markup img onerror jako aktywny HTML. Problem naprawiono w wersji 2.17.6.
- CVE-2026-63669Średnie
ApostropheCMS przed wersją 4.32.0 ma podatność w operacji move() modułu strony, która nie egzekwuje uprawnienia _create dla docelowego rodzica, gdy przenoszenie jest zwykłe (nie archiwizacja). Pozwala to uwierzytelnionemu edytorowi lub współtwórcy przenieść kontrolowaną stronę do ograniczonego poddrzewa i zmienić kolejność chronionych stron.
- CVE-2026-63667Średnie
ApostropheCMS przed wersją 3.6.2 ma podatność w module import-export, gdzie ścieżka źródłowa załącznika jest konstruowana z kontrolowanych przez atakującego pól _id, name i extension bez zapewnienia, że ścieżka pozostaje w katalogu wyodrębnionych załączników. Pozwala to uwierzytelnionemu współtwórcy zaimportować spreparowane archiwum, odczytać plik hosta z dozwolonym rozszerzeniem i opublikować skopiowany plik pod nieuwierzytelnionym adresem URL uploads.
- CVE-2026-45014Średnie
ApostropheCMS to otwartoźródłowy system zarządzania treścią oparty na Node.js. Wersje do 4.29.0 włącznie są podatne na przechowywane ataki typu cross-site scripting z powodu niesanitizowanej nazwy wyświetlanej użytkownika w podpowiedzi wersji roboczej.
- CVE-2026-45013Wysokie
ApostropheCMS to system zarządzania treścią oparty na Node.js, który w wersjach do 4.29.0 ma lukę w procesie resetowania hasła. Luka ta pozwala atakującemu na wysłanie fałszywego żądania resetu, które prowadzi do wysłania linku resetującego na domenę atakującego.
- CVE-2026-45012Wysokie
ApostropheCMS to otwartoźródłowy system zarządzania treścią oparty na Node.js. W wersjach do 4.29.0 w procesie importu widgetu rich-text występuje podatność na uwierzytelnione ataki SSRF, umożliwiająca atakującemu wymuszenie na serwerze pobrania kontrolowanych przez niego adresów URL.
- CVE-2026-45011Wysokie
ApostropheCMS w wersji 4.29.0 zawiera podatność na przechowywane ataki XSS w funkcjonalności widgetu obrazów. Użytkownik z rolą Edytora może skonfigurować link widgetu obrazów, aby używał ładunku URL javascript:, co pozwala na publikację złośliwego widgetu na stronie.
- CVE-2026-40186Średnie
ApostropheCMS to open-source'owy system CMS dla Node.js. Regresja wprowadzona w commicie 49d0bb7, obecna w wersji 2.17.1 pakietu sanitize-html, omija egzekwowanie allowedTags dla tekstu wewnątrz elementów nonTextTagsArray (textarea i option). ApostropheCMS w wersji 4.28.0 jest podatny poprzez zależność od podatnej wersji sanitize-html. Atakujący może wstrzyknąć dowolne tagi, w tym payloady XSS, poprzez dowolny dozwolony element option lub textarea przy użyciu kodowania encji. Problem naprawiono w sanitize-html 2.17.2 i ApostropheCMS 4.29.0.
- CVE-2026-39857Średnie
W ApostropheCMS w wersjach 4.28.0 i wcześniejszych parametry choices i counts w REST API wykonują operacje MongoDB distinct(), które omijają ograniczenia publicApiProjection. Nieuwierzytelniony atakujący może wyodrębnić wszystkie unikalne wartości pól schematu, w tym pól chronionych przez viewPermission, a wariant counts ujawnia liczbę dokumentów dla każdej wartości.
- CVE-2026-33889Średnie
ApostropheCMS w wersjach 4.28.0 i wcześniejszych zawiera podatność stored XSS w module @apostrophecms/color-field. Wartości kolorów z prefiksem -- omijają walidację TinyColor, a wywołanie launder.string() wykonuje tylko konwersję typu bez usuwania metaznaków HTML. Nieoczyszczone wartości są konkatenowane bezpośrednio do tagów <style> w elementach stylów widgetów i globalnym arkuszu stylów, oznaczonych jako bezpieczny HTML. Edytor może wstrzyknąć wartość zamykającą tag style i wykonującą dowolny JavaScript w przeglądarce każdego odwiedzającego.
- CVE-2026-33888Średnie
ApostropheCMS w wersjach 4.28.0 i starszych zawiera obejście autoryzacji w metodzie getRestQuery modułu @apostrophecms/piece-type. Nieuwierzytelniony atakujący może dodać parametr project w żądaniu REST API, co powoduje pominięcie publicApiProjection i ujawnienie pól, które administrator wyłączył z publicznego API, takich jak notatki wewnętrzne, treści robocze czy metadane.
- CVE-2026-33877Niskie
ApostropheCMS w wersjach 4.28.0 i starszych zawiera podatność typu timing side-channel w endpoincie resetowania hasła (/api/v1/@apostrophecms/login/reset-request), umożliwiającą nieuwierzytelnione wyliczanie nazw użytkowników i adresów e-mail. Różnice w czasie odpowiedzi wynikają z braku normalizacji opóźnień oraz braku ograniczania liczby żądań. Podatność naprawiono w wersji 4.29.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

