CVE-2026-27899
WireGuard Portal (or wg-portal) is a web-based configuration portal for WireGuard server management. Prior to version 2.1.3, any authenticated non-admin user can become a full administrator by sending a single PUT request to their own user profile endpoint with `"IsAdmin": true` in the JSON body. After logging out and back in, the session picks up admin privileges from the database. When a user updates their own profile, the server parses the full JSON body into the user model, including the `IsAdmin` boolean field.
Leer descripción completaMostrar menos
A function responsible for preserving calculated or protected attributes pins certain fields to their database values (such as base model data, linked peer count, and authentication data), but it does not do this for `IsAdmin`. As a result, whatever value the client sends for `IsAdmin` is written directly to the database. After the exploit, the attacker has full admin access to the WireGuard VPN management portal. The problem was fixed in v2.1.3. The docker images for the tag 'latest' built from the master branch also include the fix.
CVSS
- Versión: 3.1
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Puntuación base: 8.8
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.55%
- Percentil entre todas las CVEs puntuadas: 44
- 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 movement90 % - Impacto principal
T1068Exploitation for Privilege Escalationprivilege escalation95 % - Impacto secundario
T1078Valid Accountsstealth · persistence · privilege escalation · initial access90 %
Autenticado sin privilegios explotando fallo de control de acceso en API remota (PUT /profile con IsAdmin=true) para escalar a admin; requiere acceso autenticado a servicio de red adyacente.
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-269, CWE-863
- CWE-863
Referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-27899",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-27899",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"version": "2.0.3",
"timestamp": "2026-02-26T16:02:22.653465Z"
}
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 8.8,
"attackVector": "NETWORK",
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"integrityImpact": "HIGH",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"availabilityImpact": "HIGH",
"privilegesRequired": "LOW",
"confidentialityImpact": "HIGH"
},
"impactScore": 5.9,
"exploitabilityScore": 2.8
}
]
},
"affected": [
{
"source": "security-advisories@github.com",
"affectedData": [
{
"vendor": "h44z",
"product": "wg-portal",
"versions": [
{
"status": "affected",
"version": "< 2.1.3"
}
]
}
]
}
],
"published": "2026-02-26T02:16:20.557",
"references": [
{
"url": "https://github.com/h44z/wg-portal/security/advisories/GHSA-5rmx-256w-8mj9",
"tags": [
"Patch",
"Vendor Advisory"
],
"source": "security-advisories@github.com"
}
],
"vulnStatus": "Analyzed",
"weaknesses": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"description": [
{
"lang": "en",
"value": "CWE-269"
},
{
"lang": "en",
"value": "CWE-863"
}
]
},
{
"type": "Primary",
"source": "nvd@nist.gov",
"description": [
{
"lang": "en",
"value": "CWE-863"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "WireGuard Portal (or wg-portal) is a web-based configuration portal for WireGuard server management. Prior to version 2.1.3, any authenticated non-admin user can become a full administrator by sending a single PUT request to their own user profile endpoint with `\"IsAdmin\": true` in the JSON body. After logging out and back in, the session picks up admin privileges from the database. When a user updates their own profile, the server parses the full JSON body into the user model, including the `IsAdmin` boolean field. A function responsible for preserving calculated or protected attributes pins certain fields to their database values (such as base model data, linked peer count, and authentication data), but it does not do this for `IsAdmin`. As a result, whatever value the client sends for `IsAdmin` is written directly to the database. After the exploit, the attacker has full admin access to the WireGuard VPN management portal. The problem was fixed in v2.1.3. The docker images for the tag 'latest' built from the master branch also include the fix."
},
{
"lang": "es",
"value": "WireGuard Portal (o wg-portal) es un portal de configuración basado en web para la gestión de servidores WireGuard. Antes de la versión 2.1.3, cualquier usuario autenticado no administrador puede convertirse en un administrador completo enviando una única solicitud PUT a su propio endpoint de perfil de usuario con 'IsAdmin': true en el cuerpo JSON. Después de cerrar y volver a iniciar sesión, la sesión adquiere privilegios de administrador de la base de datos. Cuando un usuario actualiza su propio perfil, el servidor analiza el cuerpo JSON completo en el modelo de usuario, incluyendo el campo booleano IsAdmin. Una función responsable de preservar atributos calculados o protegidos fija ciertos campos a sus valores de base de datos (como datos del modelo base, recuento de pares vinculados y datos de autenticación), pero no lo hace para IsAdmin. Como resultado, cualquier valor que el cliente envíe para IsAdmin se escribe directamente en la base de datos. Después del exploit, el atacante tiene acceso de administrador completo al portal de gestión de VPN de WireGuard. El problema se solucionó en la v2.1.3. Las imágenes de docker para la etiqueta 'latest' construidas desde la rama master también incluyen la solución."
}
],
"lastModified": "2026-06-17T10:27:50.727",
"configurations": [
{
"nodes": [
{
"negate": false,
"cpeMatch": [
{
"criteria": "cpe:2.3:a:wgportal:wireguard_portal:*:*:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "EBB8589E-9B73-45D5-A26F-84E7A69EE57B",
"versionEndExcluding": "2.1.3"
}
],
"operator": "OR"
}
]
}
],
"sourceIdentifier": "security-advisories@github.com"
}