Katalog CVE

CVE-2026-70557

ŚrednieCVSS 6.5
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.39%

Percentyl 31 - wyżej niż 31% wszystkich znanych CVE

Streszczenie

W diboot-core endpoint POST /common/load-related-data rozwiązuje nazwy pól dostarczone przez wywołującego do dowolnej kolumny @TableField dowolnej encji i zwraca te wartości dla wszystkich wierszy, bez listy dozwolonych pól lub encji. Jedyna ochrona, relatedDataSecurityCheck(), zawsze zwraca true, więc każdy uwierzytelniony użytkownik (w tym konto bez ról) może odczytać sekretne pola z adnotacją @JsonIgnore, takie jak IamAccount.authSecret i IamAccount.secretSalt, dla każdego konta. Hasła MD5 z dwiema iteracjami i 8-znakową solą są łatwe do złamania offline, co prowadzi do pełnego przejęcia administracyjnego.

Ocena ryzyka

Ujawnienie sekretnych pól, w tym hashów haseł administratora, może prowadzić do całkowitego przejęcia systemu przez nieautoryzowanego użytkownika.

Rekomendacja

Zastosuj poprawkę od producenta lub ogranicz dostęp do endpointu, a także wymuś silniejsze hashowanie haseł.

Powiązane podatności

Oryginalny opis (angielski, źródło NVD)

diboot-core's POST /common/load-related-data endpoint resolves caller-supplied field names to any @TableField column of any entity and returns those values for all rows, with no field or entity allowlist. The only guard, relatedDataSecurityCheck(), returns true unconditionally, so any authenticated user (including a zero-role account) can read @JsonIgnore-annotated secret fields such as IamAccount.authSecret and IamAccount.secretSalt for every account, or arbitrary secret fields of any other entity. Shiro's two-iteration MD5 with an 8-character salt is trivially crackable offline, so the disclosed admin password hashes convert to full administrative takeover. The endpoint is not example code; the official diboot-admin-ui frontend requires it, so deployments following the vendor's recommended integration expose it. The mechanism was renamed relatedData* to attachMore* on the development branch, but attachMoreSecurityCheck() also returns true unconditionally.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS