CVE-2026-76899
ŚrednieCVSS 5.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 31 - wyżej niż 31% wszystkich znanych CVE
Streszczenie
CordysCRM w wersjach od 1.7.0 do 1.7.4 zawiera podatność na wstrzyknięcie SQL w punkcie końcowym POST /account-pool/page. Uwierzytelniony użytkownik z uprawnieniami MODULE_SETTING_UPDATE może umieścić dowolną funkcję bazy danych w polu SortRequest.name, ponieważ brakuje walidacji żądania Spring, a czarna lista jest niekompletna. Funkcje takie jak extractvalue i updatexml mogą ujawnić wartości z bazy danych przez błąd orakularny.
Ocena ryzyka
Atakujący może uzyskać dostęp do wrażliwych danych z bazy danych, co może prowadzić do naruszenia poufności i integralności danych.
Rekomendacja
Zaktualizuj CordysCRM do wersji 1.7.4 lub nowszej, która zawiera poprawkę.
Inne podatności w CordysCRM
Zobacz wszystkie- CVE-2026-63647Krytyczne
CordysCRM to otwarty system CRM oparty na AI, który wspiera prywatne wdrożenia. W wersjach przed 1.7.2 SseController udostępnia anonimowe punkty końcowe /sse/subscribe, /sse/broadcast i /sse/close, ponieważ ShiroFilter.addPublicPathFilters zezwala na ścieżki SSE, a punkty końcowe ufają kontrolowanemu przez wywołującego identyfikatorowi userId zamiast wyprowadzać tożsamość z uwierzytelnionego podmiotu. Nieuwierzytelniony wywołujący może użyć /sse/subscribe do odczytu zdarzeń przepływu pracy innego użytkownika, żądań zatwierdzenia, wzmianek i alertów, użyć /sse/broadcast do wstrzyknięcia komunikatów SYSTEM_HEARTBEAT do strumienia innego użytkownika lub użyć /sse/close do zakończenia kanału innego użytkownika. Podatność została naprawiona w wersji 1.7.2.
- CVE-2026-108705Średnie
CordysCRM do wersji 1.9.3 zawiera brak autoryzacji w punkcie końcowym POST /custom-form/data/import, co pozwala uwierzytelnionym użytkownikom na importowanie danych do dowolnego formularza niestandardowego za pomocą customFormId. Atakujący z niskimi uprawnieniami mogą przesyłać pliki Excel z typem importu ADD lub UPDATE, aby tworzyć rekordy lub nadpisywać istniejące rekordy w formularzach, których nie mogą zarządzać.
- CVE-2026-108704Średnie
CordysCRM do wersji 1.9.3 zawiera podatność na obejście autoryzacji, która pozwala użytkownikom z niskimi uprawnieniami na pominięcie kontroli uprawnień poprzez ustawienie pola owner na własny identyfikator użytkownika. Atakujący mogą wysyłać żądania do punktów końcowych follow/record/add, aby dodawać rekordy uzupełniające i nadpisywać follow_time oraz follower dla dowolnego znanego klienta, szansy lub okazji.
- CVE-2026-108703Średnie
CordysCRM do wersji 1.9.3 zawiera brak autoryzacji w punkcie końcowym POST /approval-resource/push, co pozwala uwierzytelnionym użytkownikom na przesyłanie dowolnych zasobów do zatwierdzenia bez sprawdzania własności. Atakujący z niskimi uprawnieniami mogą podać dowolne wartości resourceId dla kontraktów, faktur, wycen lub zamówień, aby zmienić ich status zatwierdzenia i odczytać szczegóły zatwierdzenia.
- CVE-2026-108702Średnie
1Panel-dev CordysCRM do wersji 1.9.3 nie sprawdza uprawnień PROCESS_SETTING na punkcie końcowym POST /approval-flow/webhook/test, co pozwala każdemu uwierzytelnionemu użytkownikowi na wyzwalanie żądań po stronie serwera do adresów URL dostarczonych przez atakującego. Atakujący mogą przekierować żądania GET z kontrolowanego hosta, aby ominąć SSRFValidator i badać wewnętrzne adresy poprzez wyniki sukcesu lub porażki.
- CVE-2026-108701Średnie
1Panel-dev CordysCRM przed wersją 1.9.2 zawiera brak autoryzacji w obsłudze sortModule w ContractController dla POST /contract/sort, który nie ma żadnej adnotacji uprawnień. Uwierzytelnieni użytkownicy bez uprawnień do aktualizacji kontraktów mogą podać dragNodeId, stage i wartości pól, aby modyfikować dowolny kontrakt, w tym kontrakty w innych organizacjach.
- CVE-2026-108700Średnie
1Panel-dev CordysCRM przed wersją 1.9.2 zawiera brak autoryzacji, który pozwala uwierzytelnionym użytkownikom na listowanie tytułów biznesowych poprzez wywołanie POST /field/source/business-title bez kontroli uprawnień. Użytkownicy bez uprawnień CONTRACT_BUSINESS_TITLE_READ mogą pobierać dane podmiotów fakturowania organizacji, ujawniając numery identyfikacji podatkowej, numery kont bankowych, banki otwierające, adresy rejestracyjne i numery telefonów.
- CVE-2026-108692Średnie
1Panel-dev CordysCRM od wersji 1.9.0 przed 1.9.2 zawiera brak autoryzacji w ośmiu punktach końcowych ModuleFieldController /field/source, które nie mają kontroli uprawnień. Uwierzytelnieni użytkownicy bez uprawnień modułu mogą przeglądać dane organizacji dotyczące leadów, kontaktów, wycen, kontraktów, planów płatności, rekordów płatności, zamówień i faktur należących do innych użytkowników.
- CVE-2026-76902Średnie
CordysCRM przed wersją 1.7.4 zawiera podatność w trasach /attachment/preview/{id} i /pic/preview/{id}, które są skonfigurowane jako anonimowe i wywołują AttachmentService.getResource bez sprawdzania własności, organizacji lub uprawnień. Nieuwierzytelniony atakujący, który zgadnie lub zaobserwuje identyfikator wygenerowany przez IDGenerator.nextStr, może pobrać pliki przesłane przez użytkowników z innych organizacji.
- CVE-2026-76901Średnie
CordysCRM przed wersją 1.7.4 zawiera podatność w trasach GET /pool/lead/get/{id} i GET /pool/account/get/{id}, które używają jedynie podstawowych kontroli uprawnień odczytu bez powiązania z zasobem CsPermission, co pozwala uwierzytelnionemu użytkownikowi z uprawnieniami CLUE_MANAGEMENT_POOL:READ lub CUSTOMER_MANAGEMENT_POOL:READ na dostęp do rekordów należących do innych użytkowników, działów lub organizacji. Ujawniane dane obejmują nazwy kontaktów, numery telefonów, informacje o właścicielu i działy oraz wartości pól niestandardowych.
Oryginalny opis (angielski, źródło NVD)
CordysCRM is an open source AI-powered customer relationship management system that supports private deployment. From 1.7.0 until 1.7.4, POST /account-pool/page allows an authenticated caller with MODULE_SETTING_UPDATE to place an arbitrary database function in SortRequest.name because CustomerPoolController.page omits Spring request validation, SortRequest.getName relies on an incomplete blacklist, and the CommonMapper.xml sort fragment inserts ${sortName} into an ORDER BY clause. Functions such as extractvalue and updatexml bypass the blacklist and can expose database values through an error oracle when the query returns at least one row. This issue is fixed in version 1.7.4.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

