CVE-2026-28216
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.
Leer descripción completaMostrar menos
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
- Versión: 3.1
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L
- Puntuación base: 8.3
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.42%
- Percentil entre todas las CVEs puntuadas: 34
- Fecha de la puntuación: 5/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
🎯 Técnicas ATT&CK
Cómo se explota esta vulnerabilidad y qué consigue el atacante, en el lenguaje de MITRE ATT&CK.
- Explotación
T1210Exploitation of Remote Serviceslateral movement85 % - Impacto principal
T1005Data from Local Systemcollection90 % - Impacto secundario
T1531Account Access Removalimpact75 % - Impacto secundario
T1565.001Stored Data Manipulationimpact88 %
Acceso remoto con autenticación (PR:L) sin validación de propiedad del recurso. Impactos: lectura de secretos/tokens (T1005), modificación de valores (T1565.001), eliminación de datos (T1531). CWE-639: autorización incorrecta.
Inferido por nuestro agente de análisis a partir de la descripción oficial, el vector CVSS y la CWE, y comprobado por un supervisor. Puede contener errores.
🛡️ Mitigaciones ATT&CK que cubren estas técnicas
Tecnologías afectadas (1)
CWE
- CWE-639
Referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-28216",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-28216",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"version": "2.0.3",
"timestamp": "2026-02-27T18:43:04.669293Z"
}
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 8.3,
"attackVector": "NETWORK",
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L",
"integrityImpact": "HIGH",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"availabilityImpact": "LOW",
"privilegesRequired": "LOW",
"confidentialityImpact": "HIGH"
},
"impactScore": 5.5,
"exploitabilityScore": 2.8
}
]
},
"affected": [
{
"source": "security-advisories@github.com",
"affectedData": [
{
"vendor": "hoppscotch",
"product": "hoppscotch",
"versions": [
{
"status": "affected",
"version": "< 2026.2.0"
}
]
}
]
}
],
"published": "2026-02-26T23:16:36.100",
"references": [
{
"url": "https://github.com/hoppscotch/hoppscotch/releases/tag/2026.2.0",
"tags": [
"Product",
"Release Notes"
],
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/hoppscotch/hoppscotch/security/advisories/GHSA-72rv-vc3j-5vqr",
"tags": [
"Exploit",
"Vendor Advisory"
],
"source": "security-advisories@github.com"
}
],
"vulnStatus": "Analyzed",
"weaknesses": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"description": [
{
"lang": "en",
"value": "CWE-639"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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."
},
{
"lang": "es",
"value": "hoppscotch es un ecosistema de desarrollo de API de código abierto. Antes de la versión 2026.2.0, cualquier usuario autenticado puede leer, modificar o eliminar el entorno personal de otro usuario por ID. `user-environments.resolver.ts:82-109`, la mutación `updateUserEnvironment` utiliza `@UseGuards(GqlAuthGuard)` pero carece por completo del decorador `@GqlUser()`. La identidad del usuario nunca se extrae, por lo que el servicio recibe solo el ID del entorno y realiza una `prisma.userEnvironment.update({ where: { id } })` sin ningún filtro de propiedad. La mutación `deleteUserEnvironment` sí extrae al usuario, pero el servicio solo utiliza el UID para verificar si el objetivo es un entorno global. La consulta de eliminación real utiliza WHERE { id } sin AND userUid. Los entornos de hoppscotch almacenan claves API, tokens de autenticación y secretos utilizados en solicitudes API. Un atacante autenticado que obtiene el ID del entorno de otro usuario puede leer sus secretos, reemplazarlos con valores maliciosos o eliminarlos por completo. El formato del ID del entorno es CUID, lo que limita la explotación masiva, pero las amenazas internas y los escenarios combinados de fuga de información son realistas. La versión 2026.2.0 corrige el problema."
}
],
"lastModified": "2026-06-17T10:28:20.963",
"configurations": [
{
"nodes": [
{
"negate": false,
"cpeMatch": [
{
"criteria": "cpe:2.3:a:hoppscotch:hoppscotch:*:*:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "3FF8DA47-4B0B-4592-80AD-66C7913AD164",
"versionEndExcluding": "2026.2.0"
}
],
"operator": "OR"
}
]
}
],
"sourceIdentifier": "security-advisories@github.com"
}