CVE-2026-109180
ŚrednieCVSS 4.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 13 - wyżej niż 13% wszystkich znanych CVE
Streszczenie
jshERP do wersji 3.6 zawiera lukę obejścia autoryzacji, która pozwala uwierzytelnionym użytkownikom na odczyt danych z nieprzypisanych magazynów poprzez podanie parametrów depotId lub depotIds. Gdy włączone jest ograniczenie magazynów depot_flag, atakujący może wskazać dowolne identyfikatory magazynów w endpointach takich jak /depotItem/getMaterialDepotStockByParam, aby odczytać stany magazynowe, numery partii, dane sprzedażowe i wycenione pozycje faktur w obrębie tenanta.
Ocena ryzyka
Niski uprawnieniami użytkownik może uzyskać dostęp do danych magazynowych i sprzedażowych innych magazynów, co stanowi naruszenie poufności danych biznesowych i może prowadzić do wycieku informacji handlowych.
Rekomendacja
Zaktualizuj jshERP do wersji nowszej niż 3.6, jeśli jest dostępna, lub wdróż kontrolę autoryzacji weryfikującą przypisanie użytkownika do magazynu przed zwróceniem danych. Rozważ ograniczenie dostępu do endpointów takich jak /depotItem/getMaterialDepotStockByParam.
Inne podatności w jshERP
Zobacz wszystkie- CVE-2026-109187Średnie
jshERP do wersji 3.6 zawiera podatność ujawnienia informacji, która pozwala każdemu uwierzytelnionemu użytkownikowi odczytać sekrety konfiguracyjne całej platformy przez procedurę getInfoByKey kontrolera PlatformConfigController. Użytkownicy o niskich uprawnieniach z dowolnej dzierżawy mogą żądać dowolnych wartości platformKey, takich jak email_auth_code lub activation_code, aby uzyskać kody autoryzacji SMTP i sekrety aktywacyjne, ponieważ tylko klucze aliOss i weixin są blokowane.
- CVE-2026-109186Wysokie
jshERP do wersji 3.6 zawiera podatność masowego przypisania w handlerze aktualizacji UserController, która pozwala uwierzytelnionym użytkownikom nadpisać chronione pola, w tym tenant_id i hasło. Atakujący mogą wysłać spreparowane ciało żądania PUT /user/update, aby przy następnym logowaniu przełączyć się do innej dzierżawy lub nadpisać skróty haseł innych użytkowników w celu przejęcia konta.
- CVE-2026-109182Średnie
jshERP do wersji 3.6 zawiera podatność nieprawidłowej autoryzacji w GET /supplier/exportExcel, która pozwala uwierzytelnionym użytkownikom ominąć ograniczenia zakresu danych ról egzekwowane przez /supplier/list. Atakujący ograniczeni do danych osobowych lub działowych mogą eksportować wszystkie rekordy dostawców, klientów i członków, ujawniając kontakty, numery telefonów, numery podatkowe, konta bankowe i salda.
- CVE-2026-109181Średnie
jshERP do wersji 3.6 zawiera podatność obejścia autoryzacji, która pozwala uwierzytelnionym użytkownikom ograniczonym do danych osobowych lub działowych na listowanie rachunków innych użytkowników poprzez dodanie wartości purchaseStatus. Atakujący mogą dodać purchaseStatus=0 do JSON-a wyszukiwania w GET /depotHead/list, co powoduje, że DepotHeadService.select usuwa filtr twórcy i ujawnia wszystkie rachunki zakupu, sprzedaży i magazynowe w dzierżawie.
- CVE-2026-109188Średnie
jshERP do wersji 3.6 zawiera lukę braku autoryzacji, która pozwala uwierzytelnionym użytkownikom z niskimi uprawnieniami tworzyć dane podstawowe na poziomie całej dzierżawy (tenant) poprzez punkty końcowe add i import, które nie sprawdzają ról. Atakujący mogą wysyłać żądania POST do /account/add, /material/add lub /material/importExcel, aby tworzyć konta rozliczeniowe, produkty z początkowym stanem magazynowym, działy i wpisy słownikowe.
- CVE-2026-109185Wysokie
jshERP do wersji 3.6 zawiera podatność braku autoryzacji w handlerze updateUser kontrolera UserController, która pozwala uwierzytelnionym użytkownikom przypisać dowolne role dowolnemu użytkownikowi. Atakujący o niskich uprawnieniach mogą wysłać własny identyfikator użytkownika z identyfikatorem roli administratora dzierżawy, aby podnieść uprawnienia lub zmienić role innych użytkowników dzierżawy.
- CVE-2026-109184Średnie
jshERP do wersji 3.6 zawiera podatność nieprawidłowej autoryzacji, która pozwala uwierzytelnionym użytkownikom o niskich uprawnieniach odczytać dowolną księgę kont rozliczeniowych, podając dowolne accountId. Atakujący ograniczeni do zakresu danych osobowych lub działowych mogą wysyłać zapytania GET /account/findAccountInOutList, aby przeglądać numery rachunków, kontrahentów, kwoty i uwagi innych użytkowników w ramach dzierżawy.
- CVE-2026-109183Średnie
jshERP do wersji 3.6 zawiera podatność obejścia autoryzacji, która pozwala uwierzytelnionym użytkownikom tworzyć wstępnie zatwierdzone rachunki, ustawiając status w żądaniach POST /depotHead/addDepotHeadAndDetail. Atakujący mogą podać status 1, aby pominąć kontrole uprawnień audytu i wielopoziomowe procesy zatwierdzania, tworząc rachunki zatwierdzone, które wpływają na stan magazynowy i zapytania raportowe.
- CVE-2026-109179Średnie
jshERP do wersji 3.6 zawiera lukę braku autoryzacji w LogController, która pozwala każdemu uwierzytelnionemu użytkownikowi na odczyt dziennika audytu operacji tenanta. Użytkownicy o niskich uprawnieniach mogą wysyłać żądania GET do /log/list lub /log/info, aby wyświetlić nazwy logowania innych użytkowników, adresy IP klientów i wykonywane akcje.
- CVE-2026-109178Średnie
jshERP do wersji 3.6 zawiera lukę braku autoryzacji w LogController, która pozwala każdemu uwierzytelnionemu użytkownikowi na fałszowanie, modyfikowanie lub usuwanie wpisów dziennika audytu. Użytkownicy o niskich uprawnieniach mogą wywoływać /log/add, /log/update, /log/delete i /log/deleteBatch, aby tworzyć fałszywe wpisy, zmieniać pola użytkownika i IP lub usuwać rekordy w celu ukrycia aktywności.
Oryginalny opis (angielski, źródło NVD)
jshERP through 3.6 contains an authorization bypass vulnerability that allows authenticated users to read data from unassigned warehouses by supplying depotId or depotIds request parameters. When depot_flag warehouse restriction is enabled, attackers can name arbitrary warehouse ids in endpoints like /depotItem/getMaterialDepotStockByParam to read stock levels, batch numbers, sales figures and priced bill lines within the tenant.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

