Niski Odebrany

CVE-2026-49400

opublikowano:
modyfikacja:
Ocena CVSS
3.3
Niski · v3.1
wektor: CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:L/I:L/A:N

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

October System udostępnia moduł systemowy dla Systemu Zarządzania Treścią October. Przed wersjami 3.7.17 i 4.2.21 cecha backendu „SessionMaker” przechowywała stan sesji widgetu jako „base64(serialize(...))” i zużywała go za pomocą funkcji „unserialize()” bez ograniczenia „allowed_classes”. Dowolna ścieżka kodu, która mogłaby zapisać klucz sesyjny `widget.*` z bajtami kontrolowanymi przez atakującego, może wywołać wstrzyknięcie obiektu PHP przy następnym odczytaniu przez widżet stanu sesji, umożliwiając utworzenie instancji dowolnych klas i osiągalnych łańcuchów gadżetów PHP. Ten problem dotyczy tylko instalacji działających z włączonym trybem `cms.safe_mode`. Tryb awaryjny to niszowa funkcja opcjonalna, używana głównie w instalacjach demonstracyjnych oraz scenariuszach z wieloma dzierżawcami lub edytorami współdzielonymi, w których niezaufani użytkownicy celowo otrzymują dostęp do edytora znaczników CMS. W standardowych wdrożeniach produkcyjnych tryb awaryjny jest wyłączony, dostęp do zaplecza jest ograniczony do zaufanych administratorów, a edytor znaczników może już bezpośrednio uruchamiać dowolny PHP. Ścieżka zapisu sesji docierająca do tego ujścia jest bramkowana przez piaskownicę trybu awaryjnego, więc instalacje bez włączonego trybu awaryjnego nie są narażone. Zakres wpływu jest wąski nawet przy włączonym trybie awaryjnym. Standardowe ścieżki kodu zaplecza wypełniające stan sesji widgetu (wyszukiwane hasła, opcje sortowania, wybrane identyfikatory, wartości filtrów) zawijają dane wejściowe w znany kształt tablicy przed serializacją, więc wartości dostarczane przez użytkownika nigdy nie osiągają funkcji „unserialize()” jako sterowalny serializowany ładunek. Eksploatacja wymaga ścieżki zapisu sesji w trybie awaryjnym wraz z odpowiednim łańcuchem gadżetów PHP osiągalnym z zainstalowanego zestawu zależności. Utwardzenie poniżej usuwa leżący pod spodem zlew wtryskiwania obiektów, więc klasa problemu jest niezależnie zamknięta. Luka została załatana w wersjach 3.7.17 i 4.2.21. Zastosowano dwie zmiany. `Backend\Traits\SessionMaker` przechowuje teraz stan sesji widgetu jako zwykły JSON zamiast `base64(serialize(...))`, całkowicie eliminując ujście wtrysku obiektów dla nowych zapisów. Odczyty w przejrzysty sposób powracają do starszego formatu na jeden cykl aktualizacji, dzięki czemu istniejące sesje zachowują zapisany stan widżetu. Starsza ścieżka rezerwowa `unserialize()` ustawia teraz `allowed_classes => false`, więc nawet wartości zapisane przed aktualizacją nie mogą tworzyć instancji obiektów. W ramach obejścia ogranicz dostęp do edycji znaczników CMS tylko do w pełni zaufanych administratorów, zgodnie ze standardową październikową rekomendacją CMS dla każdego wdrożenia.

>_ Słabości (CWE)

>_ Referencje

Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.

This product uses the NVD API but is not endorsed or certified by the NVD.

Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.

CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.

NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org