CVE-2026-80515
WysokieCVSS 8.9Streszczenie
W Eclipse Arrowhead w wersjach od 5.0.0 do 5.2.1 brama zarządzania chroniąca punkty końcowe /…/mgmt/… sprawdza, czy ścieżka zawiera "/mgmt/" za pomocą request.getRequestURL().toString().contains("/mgmt/"). Tomcat zwraca getRequestURL() bez dekodowania, a Spring MVC routuje na ścieżce zdekodowanej. Żądanie /serviceregistry/%6Dgmt/systems (%6D == m) omija sprawdzenie, ale jest dekodowane do /serviceregistry/mgmt/systems i przekazywane do kontrolera zarządzania. Każdy uwierzytelniony system może wykonywać operacje zarządzania, w tym tworzyć konta sysop, co prowadzi do pełnego przejęcia chmury.
Ocena ryzyka
Ryzyko pełnego przejęcia lokalnej chmury przez dowolnego uwierzytelnionego użytkownika, w tym tworzenia kont administratora.
Rekomendacja
Zaktualizuj Eclipse Arrowhead do wersji nowszej niż 5.2.1, która zawiera poprawkę.
Inne podatności w Eclipse Arrowhead
Oryginalny opis (angielski, źródło NVD)
In Eclipse Arrowhead versions from 5.0.0 to 5.2.1 the management-authorization gate that protects every /…/mgmt/… REST endpoint decides whether to apply its check by calling request.getRequestURL().toString().contains("/mgmt/"). Tomcat returns getRequestURL() un-decoded, while Spring MVC's DispatcherServlet routes on the decoded path. Requesting /serviceregistry/%6Dgmt/systems (%6D == m) therefore fails the substring check — the filter falls through without authorising — yet is decoded to /serviceregistry/mgmt/systems and dispatched to the management controller. Spring Security's StrictHttpFirewall (active via spring-boot-starter-security in arrowhead-common) only rejects encoded / \ . % ; and null bytes, so percent-encoded ASCII letters pass through. Any authenticated system — regardless of privilege — can reach every management operation, including POST /authentication/mgmt/identities which creates new sysop accounts, yielding full administrative takeover of the local cloud.

