CVE-2026-81903
ŚrednieCVSS 5.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
Concrete CMS w wersjach 9.0.0 do 9.5.2 przechowywał wartość ikony kontenera strony wprowadzoną przez panel administracyjny bez walidacji względem znanych ikon. Niewalidowana wartość była później łączona w atrybut src tagu img przez pomocnika, który nie kodował danych wyjściowych, i była renderowana w surowej formie w listach i widokach edytora kontenerów. Użytkownik z delegowanym dostępem do panelu kontenerów stron mógł zapisać spreparowaną wartość ikony, która wychodziła poza atrybut src i wykonywała skrypt w sesji innego edytora lub administratora, który przeglądał listę, umożliwiając kradzież tokena sesji i uprzywilejowane działania w panelu. Zespół bezpieczeństwa Concrete CMS przyznał tej podatności wynik CVSS v4.0 7.0 z wektorem CVSS:4.0/AV:A/AC:L/AT:N/PR:H/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N. Dziękujemy Andrew Gonzalezowi za zgłoszenie.
Ocena ryzyka
Ryzyko kradzieży tokenów sesji i wykonywania uprzywilejowanych działań w panelu administracyjnym przez użytkownika z ograniczonym dostępem, co może prowadzić do przejęcia kont administratorów i kompromitacji systemu CMS.
Rekomendacja
Zaleca się zaktualizowanie Concrete CMS do wersji nowszej niż 9.5.2, która zawiera poprawkę walidacji i kodowania danych wyjściowych.
Inne podatności w Concrete CMS
Zobacz wszystkie- CVE-2026-85385Krytyczne
Concrete CMS poniżej 9.5.4 nie walidowało wartości strefy czasowej użytkownika (uTimezone) przy zapisie i renderowało ją bez kodowania wyjściowego na stronie zarządzania użytkownikami w Dashboard. Złośliwy ładunek XSS zapisany w tym polu wykonywał się w przeglądarce administratora, gdy ten wyświetlił danego użytkownika.
- CVE-2026-18119Krytyczne
Concrete CMS poniżej wersji 9.5.3 nie sanityzował niestandardowych wartości stylów w oknie Block Design przed zapisaniem ich do CSS strony przez sink DOM, co umożliwia trwałe (stored) cross-site scripting. Użytkownik na poziomie edytora mógł wykonać skrypt w sesji administratora i eskalować uprawnienia.
- CVE-2026-85387Wysokie
Concrete CMS przed wersją 9.5.4 autoryzowało żądania OAuth REST API wyłącznie na podstawie tokenu bearer, bez ponownego sprawdzania stanu konta, dla którego token został wydany. Dezaktywacja, usunięcie lub zablokowanie użytkownika nie unieważniało jego istniejących tokenów, więc taki użytkownik zachowywał pełny dostęp do /ccm/api/1.0/* do czasu wygaśnięcia tokenu.
- CVE-2026-18120Średnie
Concrete CMS przed wersją 9.5.3 ujawniał starszy punkt końcowy wyszukiwania wpisów Express, który zwracał wyniki w formacie JSON bez wywoływania sprawdzenia uprawnień canViewExpressEntries() stosowanego w normalnym przepływie pulpitu i eksportu CSV. Nieuwierzytelniony odwiedzający, który znał lub odkrył identyfikator encji Express, mógł wyliczyć wyniki wyszukiwania wpisów tej encji, ujawniając wartości atrybutów przeznaczone tylko dla uprzywilejowanych użytkowników.
- CVE-2026-87031Niskie
W Concrete CMS w wersjach od 9.2.0 do 9.5.3 endpoint REST API do tworzenia użytkowników (POST /ccm/api/1.0/users, metoda add() w concrete/src/Api/Controller/Users.php) nie przeprowadzał sprawdzenia uprawnień przed utworzeniem konta. W rezultacie dowolny ważny token OAuth z zakresem users:add, w tym token client_credentials bez kontekstu użytkownika, mógł tworzyć aktywne, zweryfikowane konta użytkowników z pominięciem weryfikacji e-mail i zatwierdzenia administratora. Przy domyślnych ustawieniach rejestracji utworzone konta mogły edytować treść stron, co dawało ścieżkę do trwałego cross-site scripting.
- CVE-2026-87028Średnie
Concrete CMS w wersjach od 9 do 9.5.3 nie weryfikował, czy element InstanceItem przesłany do endpointu podglądu custom-slot należy do instancji tablicy, do edycji której użytkownik był upoważniony, ani nie egzekwował uprawnienia do przeglądania strony przed wygenerowaniem treści podsumowania opartej na stronie. W rezultacie uwierzytelniony użytkownik posiadający uprawnienie edit-board-contents w jednej instancji tablicy mógł przesłać identyfikator elementu należącego do innej instancji i otrzymać pola podsumowania, w tym tytuł i opis strony, do której normalnie nie miał dostępu. Zespół bezpieczeństwa Concrete CMS nadał tej podatności ocenę CVSS v4.0 wynoszącą 5.3.
- CVE-2026-85386Średnie
Concrete CMS przed wersją 9.5.4 nie sanityzowało dokumentów XML i XSLT przesyłanych przez publiczne pytanie o upload pliku w Form Block. Nieuwierzytelniony odwiedzający mógł zapisać dokument XML z instrukcją xml-stylesheet wskazującą na złośliwy arkusz XSLT, co prowadziło do przechowywanego XSS w domenie Concrete CMS.
- CVE-2026-81927Średnie
Concrete CMS przed wersją 9.5.3 zawiera podatność typu stored XSS w obsłudze plików SVG. W trybie odrzucania plików z potencjalnie szkodliwymi elementami (nie domyślnym) przesłane pliki SVG były sprawdzane tylko względem małej wbudowanej listy blokad, a wynik szerszej sanityzacji był odrzucany, co pozwalało na zapisanie i wykonanie złośliwego kodu JavaScript.
- CVE-2026-81926Średnie
Concrete CMS w wersjach 9.4.0 do 9.5.2 nie escapowało kolidujących ścieżek stron przed wyświetleniem ich w oknie potwierdzenia duplikatu ścieżki w panelu lokalizacji. Punkt końcowy zwracał przesłaną ścieżkę bez modyfikacji, a JavaScript po stronie klienta wstawiał ją jako surowy HTML, co pozwalało na wykonanie skryptu w sesji edytora.
- CVE-2026-18426Średnie
Concrete CMS w wersjach 9.0.0 do 9.5.2 nie egzekwowało kontroli uprawnień edycji na poziomie bloku dla akcji zarządzania kontrolkami bloku Express Form, opierając się wyłącznie na walidacji tokenu CSRF. Token powiązany z użytkownikiem i akcją, a nie z konkretnym blokiem, stroną czy formularzem, pozwalał uwierzytelnionemu użytkownikowi na modyfikację kontrolek w formularzach, do których nie miał uprawnień, w tym na wstrzyknięcie kontrolki renderowanej później jako HTML (stored XSS).
Oryginalny opis (angielski, źródło NVD)
Concrete CMS versions 9.0.0 to 9.5.2 stored the Page Container icon value submitted through the dashboard without validating it against the set of known container icons. The unvalidated value was later concatenated into the src attribute of an img tag by a helper that did not encode attribute output, and was rendered raw in the Containers dashboard list and editor views. A user with delegated access to the Page Containers dashboard could store a crafted icon value that broke out of the src attribute and executed script in the authenticated session of another editor or administrator who viewed the list, enabling session token theft and privileged dashboard actions. The Concrete CMS security team gave this vulnerability a CVSS v4.0 score of 7.0 with vector CVSS:4.0/AV:A/AC:L/AT:N/PR:H/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N. Thanks Andrew Gonzalez for reporting.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

