Промежуточное программное обеспечение для авторизации сервера секвенирования Aerie/PlanDev (sequencing-server/src/app.ts) получает роль сеанса Hasura вызывающего абонента через метод getHasuraSession(), который предпочитает объект session_variables, взятый непосредственно из тела запроса JSON, предоставленного клиентом, а не утверждения JWT заголовка авторизации, без проверки того, что запрос действительно исходит от Hasura. Установив {"session_variables":{"x-hasura-role":"aerie_admin"}} в теле запроса POST /command-expansion/put-expansion без заголовка авторизации, неаутентифицированный злоумышленник удовлетворяет проверке роли и может вставлять произвольные правила расширения в sequencing.expansion_rule, которые управляют тем, как действия космического корабля преобразуются в команды. Кроме того, POST /put-dictionary явно указан в ENDPOINTS_WHITELIST и освобожден от какой-либо аутентификации, что позволяет осуществлять запись в командные словари без аутентификации.
Показать оригинальное описание (EN)
The Aerie/PlanDev sequencing-server's authorization middleware (sequencing-server/src/app.ts) derives the caller's Hasura session role via getHasuraSession, which prefers a session_variables object taken directly from the client-supplied JSON request body over the Authorization header's JWT claims, with no verification that the request actually originated from Hasura.
Характеристики атаки
Последствия
Строка CVSS v3.1