CVE-2026-52887
KrytyczneCVSS 10.0Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 44 - wyżej niż 44% wszystkich znanych CVE
Streszczenie
Wtyczka @nocobase/plugin-notification-in-app-message w NocoBase przed wersją 2.0.61 zawiera podatność na wstrzykiwanie SQL przez endpoint GET /api/myInAppChannels:list. Parametr filter[latestMsgReceiveTimestamp][$lt] jest bezpośrednio wstawiany do szablonu Sequelize.literal() bez odpowiedniego oczyszczania, co umożliwia uwierzytelnionemu użytkownikowi wykonanie złośliwych zapytań PostgreSQL, w tym potencjalnie poleceń systemowych przez COPY ... TO PROGRAM.
Ocena ryzyka
Uwierzytelniony atakujący może wykonać dowolne zapytania SQL na bazie danych, a w skrajnym przypadku uruchomić polecenia systemowe na serwerze, co prowadzi do pełnej kompromitacji aplikacji i danych.
Rekomendacja
Niezwłocznie zaktualizuj NocoBase do wersji 2.0.61 lub nowszej. Jeśli aktualizacja nie jest możliwa, ogranicz dostęp do endpointu /api/myInAppChannels:list tylko dla zaufanych użytkowników.
Inne podatności w NocoBase
Zobacz wszystkie- CVE-2026-41641Wysokie
W NocoBase przed wersją 2.0.39 funkcja walidacji checkSQL() nie była stosowana na końcówce sqlCollection:update, co umożliwiało atakującym z uprawnieniami do zarządzania kolekcjami wstrzykiwanie dowolnego SQL i wykradanie danych.
- CVE-2026-34156Krytyczne
NocoBase przed wersją 2.0.28 zawiera podatność w węźle skryptowym Workflow, która pozwala uwierzytelnionemu atakującemu na ucieczkę z piaskownicy Node.js i zdalne wykonanie kodu jako root. Atak wykorzystuje dostęp do obiektu console._stdout i console._stderr w piaskownicy oraz prototypowanie.
- CVE-2026-84701Średnie
NocoBase nie dezynfekuje wartości pól tekstu sformatowanego w rendererze odczytu, co pozwala użytkownikom z uprawnieniami do tworzenia na przechowywanie złośliwego HTML z procedurami obsługi zdarzeń. Atakujący mogą zapisywać dowolny znacznik przez API kolekcji, który wykonuje się w przeglądarkach wszystkich użytkowników przeglądających rekord.
- CVE-2026-55410Średnie
Podatność w NocoBase przed wersją 2.1.19 pozwalała na wstrzyknięcie poleceń systemowych podczas przywracania kopii zapasowej PostgreSQL. Atakujący z uprawnieniami do zarządzania kopiami zapasowymi mógł umieścić złośliwą wartość w polu database.schema w pliku _metadata.json, która była następnie interpolowana do polecenia powłoki wykonywanego przez child_process.exec().
- CVE-2026-52888Średnie
W NocoBase w wersji 2.0.59 i wcześniejszych, funkcja checkSQL() w pluginie collection-sql nie blokuje dostępu do systemowych tabel katalogowych PostgreSQL, takich jak pg_shadow, pg_roles i pg_stat_activity. Użytkownik z rolą administratora może odczytać hashe haseł i metadane bazy danych poprzez funkcję SQL Collection.
- CVE-2026-58468Średnie
NocoBase do wersji 2.1.20 zawiera podatność na fałszowanie żądań po stronie serwera (SSRF) w wrapperze serverRequest. Umożliwia ona uwierzytelnionym administratorom wysyłanie dowolnych wychodzących żądań HTTP poprzez dostarczenie złośliwych adresów URL do węzłów żądań przepływu pracy, przycisków akcji niestandardowych żądań lub wtyczki AI.
- CVE-2026-34825Średnie
NocoBase przed wersją 2.0.30 zawiera podatność we wtyczce plugin-workflow-sql, która podstawia zmienne szablonu bezpośrednio do surowych stringów SQL przez getParsedValue() bez parametryzacji lub escapowania. Każdy użytkownik, który uruchomi workflow zawierający węzeł SQL ze zmiennymi szablonu z danych kontrolowanych przez użytkownika, może wstrzyknąć dowolny SQL.
- CVE-2025-13877Średnie
Wykryto podatność w nocobase do wersji 1.9.4/2.0.0-alpha.37. Nieznana funkcja w pliku nocobase\packages\core\auth\src\base\jwt-service.ts komponentu JWT Service pozwala na manipulację argumentem API_KEY, co prowadzi do użycia twardo zakodowanego klucza kryptograficznego. Atak może być przeprowadzony zdalnie, ale wymaga wysokiego poziomu złożoności i jest trudny do wykorzystania. Exploit został publicznie ujawniony.
Oryginalny opis (angielski, źródło NVD)
NocoBase is an AI-powered no-code/low-code platform for building business applications and enterprise solutions. Prior to 2.0.61, NocoBase @nocobase/plugin-notification-in-app-message exposed GET /api/myInAppChannels:list, where the filter[latestMsgReceiveTimestamp][$lt] value was inserted into a Sequelize.literal() template string without escaping or parameter binding, allowing a signed-up authenticated user to run stacked PostgreSQL statements and potentially execute commands with COPY ... TO PROGRAM. This vulnerability is fixed in 2.0.61.

