CVE-2026-28216

HIGH CVSS 3.1: 8,3 EPSS 0.02%
Обновлено 27 февраля 2026
Hoppscotch
Параметр Значение
CVSS 8,3 (HIGH)
Уязвимые версии до 2026.2.0
Устранено в версии 2026.2.0
Тип уязвимости CWE-639 (Обход авторизации)
Поставщик Hoppscotch
Публичный эксплойт Нет

Hoppscotch — это экосистема разработки API с открытым исходным кодом. До версии 2026.2.0 любой вошедший в систему пользователь мог читать, изменять или удалять личную среду другого пользователя по идентификатору. `user-environments.resolver.ts:82-109`, мутация `updateUserEnvironment` использует `@UseGuards(GqlAuthGuard)`, но полностью лишен декоратора `@GqlUser()`. Идентификация пользователя никогда не извлекается, поэтому служба получает только идентификатор среды и выполняет `prisma.userEnvironment.update({where: { id } })` без какого-либо фильтра владения. `deleteUserEnvironment` извлекает пользователя, но служба использует только UID, чтобы проверить, является ли цель глобальной средой.

Фактический запрос на удаление использует WHERE { id } без AND userUid. Среды Hoppscotch хранят ключи API, токены аутентификации и секреты, используемые в запросах API. Злоумышленник, прошедший проверку подлинности и получивший идентификатор среды другого пользователя, может прочитать его секреты, заменить их вредоносными значениями или полностью удалить.

Формат идентификатора среды — CUID, что ограничивает массовую эксплуатацию, но сценарии внутренней угрозы и комбинированной утечки информации вполне реалистичны. Версия 2026.2.0 устраняет проблему.

Показать оригинальное описание (EN)

hoppscotch is an open source API development ecosystem. Prior to version 2026.2.0, any logged-in user can read, modify or delete another user's personal environment by ID. `user-environments.resolver.ts:82-109`, `updateUserEnvironment` mutation uses `@UseGuards(GqlAuthGuard)` but is missing the `@GqlUser()` decorator entirely. The user's identity is never extracted, so the service receives only the environment ID and performs a `prisma.userEnvironment.update({ where: { id } })` without any ownership filter. `deleteUserEnvironment` does extract the user but the service only uses the UID to check if the target is a global environment. Actual delete query uses WHERE { id } without AND userUid. hoppscotch environments store API keys, auth tokens and secrets used in API requests. An authenticated attacker who obtains another user's environment ID can read their secrets, replace them with malicious values or delete them entirely. The environment ID format is CUID, which limits mass exploitation but insider threat and combined info leak scenarios are realistic. Version 2026.2.0 fixes the issue.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Нужны права
Низкие
Нужны базовые права
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Низкое
Частичное нарушение работы

Строка CVSS v3.1

Уязвимые продукты 1

Конфигурация От (включительно) До (исключительно)
Hoppscotch Hoppscotch
cpe:2.3:a:hoppscotch:hoppscotch:*:*:*:*:*:*:*:*
2026.2.0