CVE-2026-109182
ŚrednieCVSS 4.3Streszczenie
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.
Ocena ryzyka
Eksport wrażliwych danych kontaktowych i finansowych może prowadzić do naruszenia poufności i naruszenia przepisów o ochronie danych osobowych.
Rekomendacja
Zaktualizuj jshERP do wersji nowszej niż 3.6. Upewnij się, że punkt końcowy exportExcel stosuje te same ograniczenia zakresu danych co /supplier/list.
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-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-109180Średnie
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.
- 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 incorrect authorization vulnerability in GET /supplier/exportExcel that allows authenticated users to bypass role data scope restrictions enforced by /supplier/list. Attackers restricted to personal or department data can export every supplier, customer and member record, exposing contacts, phone numbers, tax numbers, bank accounts and balances.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

