CVE-2026-67361
ŚrednieCVSS 6.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 6 - wyżej niż 6% wszystkich znanych CVE
Streszczenie
Rozszerzenie Joomla - j2commerce.com - Nieuwierzytelnione przesyłanie plików z brakiem ochrony katalogu w J2Store 1.0.0-3.3.20, 4.0.0-4.0.20, 4.1.0-4.1.5 - Punkt końcowy przesyłania plików akceptował żądania POST od nieuwierzytelnionych odwiedzających bez tokena CSRF. Dodatkowo, manifest instalatora pominął katalogi upload i invoices, powodując, że świeże instalacje wdrażają te katalogi bez ochrony .htaccess/web.config, co czyni przesłane pliki bezpośrednio dostępnymi w sieci.
Ocena ryzyka
Ryzyko obejmuje możliwość przesyłania złośliwych plików przez nieuwierzytelnionych użytkowników, co może prowadzić do wykonania kodu na serwerze lub defacementu strony. Brak ochrony katalogu zwiększa ryzyko.
Rekomendacja
Zaleca się natychmiastową aktualizację J2Store do wersji z poprawką. Należy również ręcznie dodać pliki ochronne (.htaccess/web.config) do katalogów upload i invoices oraz sprawdzić, czy nie doszło do nieautoryzowanych przesyłań.
Inne podatności w J2Store
Zobacz wszystkie- CVE-2026-78065Wysokie
W rozszerzeniu Joomla J2Store (wersje 1.0.0-3.3.21, 4.0.0-4.0.21, 4.1.0-4.1.6) wykryto podatność IDOR w funkcji editAddress(), która umożliwia każdemu uwierzytelnionemu użytkownikowi dostęp do adresów zamówień gości. Funkcja przekierowywała nie-właścicieli tylko wtedy, gdy załadowany wiersz adresu miał niepusty user_id należący do kogoś innego. Wiersze adresów zamówień gości mają pusty user_id, więc ten warunek nigdy nie był spełniony — każdy zalogowany użytkownik, zgadując mały, sekwencyjny address_id, mógł zobaczyć pełne imię, adres ulicy i numer telefonu klienta-gościa w formularzu edycji.
- CVE-2026-78064Wysokie
W rozszerzeniu Joomla J2Store (wersje 1.0.0-3.3.21, 4.0.0-4.0.21, 4.1.0-4.1.6) wykryto podatność umożliwiającą anonimowe manipulowanie rekordami koszyka poprzez odziedziczone zadanie `save` z FOF. Plik `fof.xml` przyznaje zadaniom widoku `carts` dziką kartę ACL `true`, a FOF egzekwuje tokeny CSRF tylko na żądaniach HTML backendu, nie na żądaniach frontendu `format=raw`. `J2StoreControllerCarts` ograniczył `remove()` do własnej sesji wywołującego, ale nie nadpisał ogólnego zadania `save` FOF, więc pozostało ono dostępne do wstawiania nowych wierszy koszyka z wybranym przez atakującego `user_id`/`session_id` lub nadpisywania istniejącego wiersza po id.
- CVE-2026-78000Średnie
Rozszerzenie Joomla - j2commerce.com - zawiera odzwierciedlony XSS poprzez parametry `filter_tag`, `pricefrom` i `priceto` w J2Store 1.0.0-3.3.21, 4.0.0-4.0.21, 4.1.0-4.1.6. Cztery procedury obsługi zadań akceptowały zakodowany w base64 adres URL od użytkownika i przekierowywały do niego bez weryfikacji hosta docelowego, umożliwiając phishing przy użyciu zaufanej domeny sklepu. Nie wymaga uwierzytelnienia.
- CVE-2026-77999Wysokie
W rozszerzeniu Joomla J2Store (wersje 1.0.0-3.3.21, 4.0.0-4.0.21, 4.1.0-4.1.6) wykryto podatność umożliwiającą nieuwierzytelnione fałszowanie wywołania zwrotnego PayPal, prowadzące do oszustwa związanego z potwierdzeniem zamówienia. Listener PayPal IPN akceptował odpowiedzi `UNVERIFIED` i każdą nie-`INVALID` jako ważne, wyłączał weryfikację SSL (CURLOPT_SSL_VERIFYPEER) i przechowywał werdykt w polu, którego nic później nie sprawdzało — więc przetwarzanie kontynuowało się niezależnie od wyniku. Dodatkowo porównanie zapłaconej kwoty działało tylko, gdy `mc_gross` było liczbą dodatnią; pominięcie pola w treści POST (`floatval(null) == 0`) pomijało sprawdzenie. W połączeniu z `receiver_email` skonfigurowanym przez sprzedawcę i sekwencyjnym, możliwym do odgadnięcia identyfikatorem zamówienia odczytanym z pola `custom`, anonimowy POST wystarczył, aby przenieść oczekujące zamówienie bezpośrednio do statusu `CONFIRMED` bez płatności lub wymusić na innym kliencie zmianę statusu oczekującego zamówienia na `FAILED`. `paypalv2.php` nie przeprowadzał żadnej kontroli kwoty w żadnych okolicznościach.
- CVE-2026-78069Krytyczne
Rozszerzenie Joomla - j2commerce.com - Brak autoryzacji w łańcuchu delegacji kontrolera Apps w J2Store 1.0.0-3.3.21, 4.0.0-4.0.21, 4.1.0-4.1.6 - Ścieżka delegacji appTask w J2StoreControllerApps tworzy kontrolery wtyczek bez żadnej kontroli ACL. Ponadto applocalizationdata::getInstallerTool() używa nazwy tabeli zależnej od wywołującego bez listy dozwolonych, co umożliwia odczyt/wykonanie plików z możliwością path traversal.
- CVE-2026-82191Średnie
Rozszerzenie Joomla J2Store w wersjach 1.0.0-3.3.2, 4.0.0-4.0.22, 4.1.0-4.1.7 odzwierciedla nieescapowane dane żądania w przekierowaniu PayPal notify. Spreparowany link do endpointu paypal notify, jeśli zostanie otwarty przez przeglądarkę ofiary, powoduje, że przekierowanie do kontrolera checkout com_j2store przenosi parametry wybrane przez atakującego.
- CVE-2026-82190Średnie
Rozszerzenie Joomla J2Store w wersjach 1.0.0-3.3.2, 4.0.0-4.0.22, 4.1.0-4.1.7 używa przewidywalnego/możliwego do podrobienia tokenu dostępu do zamówienia. Każdy, kto zna sekret Joomla, może obliczyć ważny token dostępu dla dowolnego zamówienia bez jego składania, uzyskując dostęp gościa do szczegółów zamówienia i cyfrowych pobrań.
- CVE-2026-82189Wysokie
W rozszerzeniu Joomla J2Store każdy może oznaczyć dowolne zamówienie jako nieudane (Failed) bez uwierzytelnienia. Atakujący może masowo oznaczać oczekujące zamówienia jako nieudane, zakłócając przychody i wymuszając ręczne przetwarzanie, lub przywracać zrealizowane zamówienia do stanu FAILED, powodując zamieszanie operacyjne. W przeciwieństwie do wcześniejszego problemu z oszustwem potwierdzeń, nie jest wymagana żadna poprawna kwota płatności ani dane transakcji.
- CVE-2026-81568Wysokie
W rozszerzeniu Joomla J2Store metoda J2StoreModelOrderdownloads::getFilePath() budowała ścieżkę do zakupionego pliku cyfrowego, łącząc skonfigurowany folder załączników z zapisaną nazwą pliku produktu (product_file_save_name), używając jedynie JPath::clean() (które normalizuje separatory, ale nie rozwiązuje ani nie odrzuca segmentów ..) i zwykłego sprawdzenia JFile::exists(). Jeśli nazwa pliku zawierała segment przejścia ../, klient posiadający ważny token/pid mógł pobrać dowolny plik czytelny dla serwera WWW (np. configuration.php).
- CVE-2026-81567Wysokie
Rozszerzenie Joomla J2Store (wersje 1.0.0-3.3.2, 4.0.0-4.0.22, 4.1.0-4.1.7) zawiera nieuwierzytelnioną podatność na ślepą iniekcję SQL w liście produktów sklepu. Atakujący może zdalnie wyodrębnić dowolne dane z bazy, takie jak rekordy klientów, zamówienia czy przechowywane tokeny, wykorzystując wnioskowanie boolean lub czasowe.
Oryginalny opis (angielski, źródło NVD)
Joomla Extension - j2commerce.com - Unauthenticated file upload with missing directory protection in J2Store 1.0.0-3.3.20, 4.0.0-4.0.20, 4.1.0-4.1.5 - The file upload endpoint accepted POST requests from unauthenticated visitors with no CSRF token. Compounding this, the installer manifest omitted the upload and invoices directories, causing fresh installs to deploy those directories without .htaccess/web.config protection, making uploaded files directly web-accessible.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

