
Paquete de divulgación y PoC en Python para CVE-2026-5430, una vulnerabilidad de confusión de algoritmos JWT en WSO2 API Manager 4.5.0 que permite la toma de control de cuentas de administrador sin autenticación.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-5430
WSO2 API Manager 4.5.0 — WSO2
El mecanismo de autenticación JWT acepta tokens firmados con algoritmos distintos de los configurados o soportados explícitamente. Esto permite a un atacante crear un JWT con un algoritmo no soportado, que luego se valida incorrectamente, lo que conduce a un acceso no autorizado.
| CVE | CVE-2026-5430 · CVE.org |
| CWE | CWE-347 |
| CVSS | Crítico: 10.0 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| Producto | WSO2 API Manager |
| Afectado | todas las versiones hasta la 4.5.0 (inclusive) |
| Parcheado | 4.5.0 update 57 (comunidad: carbon-apimgt PR 13752) y posteriores |
| Auth | no autenticado (ver mapa de origen) |
| Licencia | GNU Affero GPL v3.0 |
| Lab | solo 127.0.0.1 · paquete de divulgación para el proveedor/cliente, no es un escáner |
carbon-apimgt JWTUtil.verifyTokenSignature y OAuthAuthenticationInterceptor. El parche PR 13752 lanza OAuthAuthenticationInterceptorException. La prueba del proveedor product-apim PR 14167 forja un JWT de administrador HS256.
GET/api/am/admin/v4/tenant-configGET /api/am/admin/v4/tenant-config Authorization Bearer HS256 JWT (no kid)OAuthAuthenticationInterceptor extracts JWT (token contains '.')OAuthJwtAuthenticatorImpl.validateJWTToken -> JWTValidatorImpl.validateSignatureJWTUtil.verifyTokenSignature(jwt, alias) throws APIManagementException for HS256pre-patch interceptor catch logs and returns; request proceeds as claimed admin200 JSON no autenticado desde /api/am/admin/v4/tenant-config con un Bearer HS256 forjado. El control GET sin token es 401.
Haz esto primero: Actualiza WSO2 API Manager a 4.5.0 update 57 (comunidad: carbon-apimgt PR 13752) o posterior.
Verificar tras la actualización
CVE-2026-5430-Abraxas-Labs.py contra la compilación parcheada: el testigo mapeado no debe aparecer.Si no puedes actualizar de inmediato
Apunta solo a http://127.0.0.1:8088 (o al loopback que hayas vinculado). No apuntes este script a internet.
python3 CVE-2026-5430-Abraxas-Labs.py
El éxito es el testigo anterior en el cuerpo de la respuesta. Un 200 HTML genérico no lo es.
Stack de loopback usado para reproducir. Imágenes oficiales a menos que un Dockerfile en esta carpeta compile desde el código fuente.
cd lab
docker compose up --force-recreate
Vincula el árbol del producto vulnerable junto a Compose si el YAML monta un directorio local (zip del plugin / etiqueta de código fuente de la tabla de versiones). No publiques nada excepto 127.0.0.1.
# CVE-2026-5430 / WSO2-2026-5328
CWE: CWE-347
CVSS: Critical 10.0 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H (vendor). Single-tenant 9.8. CISA KEV 2026-09-24.
## Description
The JWT authentication mechanism accepts tokens signed with algorithms other than those explicitly configured or supported. An HS256 token with no kid makes `JWTUtil.verifyTokenSignature` throw; pre-patch `OAuthAuthenticationInterceptor` swallows `APIManagementException` and continues, so the Admin/Publisher REST call runs with the token claims (including `sub=admin`).
## Product
WSO2 API Manager 4.5.0 GA Docker Hub image (no Updates). Same carbon-apimgt on API Control Plane 4.5.0/4.6.0, API Manager 4.1.0-4.6.0, Traffic Manager 4.5.0/4.6.0, Universal Gateway 4.5.0/4.6.0.
Este paquete de divulgación está licenciado bajo la GNU Affero General Public License v3.0. Ver LICENSE.
Este paquete es para el proveedor, el propietario del sitio y los labs autorizados. El script se comunica con 127.0.0.1. Usarlo contra sistemas que no posees no está autorizado por Abraxas Labs. Sin garantía.