CVE-2026-109181
ŚrednieCVSS 4.3Streszczenie
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.
Ocena ryzyka
Ujawnienie wszystkich rachunków w dzierżawie może prowadzić do naruszenia poufności danych biznesowych i nieautoryzowanego dostępu do informacji finansowych.
Rekomendacja
Zaktualizuj jshERP do wersji nowszej niż 3.6. Wdróż walidację parametrów wyszukiwania i wymuś filtr twórcy na serwerze.
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-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 authorization bypass vulnerability that allows authenticated users restricted to personal or department data to list other users' bills by adding a purchaseStatus value. Attackers can include purchaseStatus=0 in the search JSON on GET /depotHead/list, causing DepotHeadService.select to drop the creator filter and expose all tenant purchase, sales and inventory bills.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

