
Disclosure pack e PoC in Python per CVE-2026-5430, una vulnerabilità di confusione dell'algoritmo JWT in WSO2 API Manager 4.5.0 che consente il takeover di account admin non autenticato.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-5430
WSO2 API Manager 4.5.0 — WSO2
Il meccanismo di autenticazione JWT accetta token firmati con algoritmi diversi da quelli esplicitamente configurati o supportati. Ciò consente a un attaccante di creare un JWT con un algoritmo non supportato, che viene poi convalidato in modo errato, portando a un accesso non autorizzato.
| CVE | CVE-2026-5430 · CVE.org |
| CWE | CWE-347 |
| CVSS | Critico: 10.0 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| Prodotto | WSO2 API Manager |
| Affetto | tutte le versioni fino alla 4.5.0 (inclusa) |
| Corretto | 4.5.0 update 57 (community: carbon-apimgt PR 13752) e successivi |
| Auth | non autenticato (vedi source map) |
| Licenza | GNU Affero GPL v3.0 |
| Lab | solo 127.0.0.1 · pacchetto di divulgazione per vendor/client, non uno scanner |
carbon-apimgt JWTUtil.verifyTokenSignature e OAuthAuthenticationInterceptor. La patch PR 13752 lancia OAuthAuthenticationInterceptorException. Il test del vendor product-apim PR 14167 forgia un JWT admin 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 non autenticato da /api/am/admin/v4/tenant-config con Bearer HS256 forgiato. Il controllo GET senza token è 401.
Fai questo per primo: Aggiorna WSO2 API Manager a 4.5.0 update 57 (community: carbon-apimgt PR 13752) o successivo.
Verifica dopo l'aggiornamento
CVE-2026-5430-Abraxas-Labs.py contro la build corretta: il witness mappato non deve apparire.Se non puoi aggiornare immediatamente
Target solo http://127.0.0.1:8088 (o il loopback che hai associato). Non puntare questo script verso internet.
python3 CVE-2026-5430-Abraxas-Labs.py
Il successo è il witness sopra nel corpo della risposta. Un generico 200 HTML non lo è.
Stack loopback usato per la riproduzione. Immagini ufficiali a meno che un Dockerfile in questa cartella non venga compilato dai sorgenti.
cd lab
docker compose up --force-recreate
Associa l'albero del prodotto vulnerabile accanto a Compose se lo YAML monta una directory locale (plugin zip / tag sorgente dalla tabella delle versioni). Non pubblicare nulla tranne 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.
Questo pacchetto di divulgazione è concesso in licenza sotto la GNU Affero General Public License v3.0. Vedi LICENSE.
Questo pacchetto è destinato al vendor, al proprietario del sito e ai lab autorizzati. Lo script comunica con 127.0.0.1. L'uso contro sistemi di cui non sei proprietario non è autorizzato da Abraxas Labs. Nessuna garanzia.