В версиях Eclipse Arrowhead с 5.0.0 по 5.2.1 шлюз авторизации управления, который защищает каждую конечную точку REST /…/mgmt/…, решает, применять ли свою проверку, вызывая request.getRequestURL().toString().contains("/mgmt/"). Tomcat возвращает getRequestURL() в недекодированном виде, тогда как DispatcherServlet Spring MVC маршрутизируется по декодированному пути. Таким образом, запрос /serviceregistry/%6Dgmt/systems (%6D == m) не проходит проверку подстроки — фильтр не проходит без авторизации — но декодируется в /serviceregistry/mgmt/systems и отправляется контроллеру управления. StrictHttpFirewall Spring Security (активируется через Spring-Boot-Starter-Security в Arrowhead-Common) отклоняет только закодированные / \ . %; и нулевые байты, поэтому проходят буквы ASCII в процентном кодировании.
Любая аутентифицированная система — независимо от привилегий — может выполнять любую операцию управления, включая POST /authentication/mgmt/identities, которая создает новые учетные записи системных операторов, обеспечивая полный административный контроль над локальным облаком.
Показать оригинальное описание (EN)
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.
Характеристики атаки
Последствия
Строка CVSS v4.0