
Pacote de divulgação e PoC em Python para CVE-2026-5430, uma falha de confusão de algoritmo JWT no WSO2 API Manager 4.5.0 que permite a tomada de controle de conta de administrador sem autenticação.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-5430
WSO2 API Manager 4.5.0 — WSO2
O mecanismo de autenticação JWT aceita tokens assinados com algoritmos diferentes daqueles explicitamente configurados ou suportados. Isso permite que um atacante crie um JWT com um algoritmo não suportado, que é então validado incorretamente, levando a acesso não 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 |
| Produto | WSO2 API Manager |
| Afetado | todas as versões até 4.5.0 (inclusive) |
| Corrigido | 4.5.0 update 57 (comunidade: carbon-apimgt PR 13752) e posteriores |
| Autenticação | não autenticado (ver mapa do código-fonte) |
| Licença | GNU Affero GPL v3.0 |
| Lab | apenas 127.0.0.1 · pacote de divulgação para fornecedor/cliente, não é um scanner |
carbon-apimgt JWTUtil.verifyTokenSignature e OAuthAuthenticationInterceptor. O patch PR 13752 lança OAuthAuthenticationInterceptorException. O teste do fornecedor product-apim PR 14167 forja um JWT de 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 não autenticado de /api/am/admin/v4/tenant-config com Bearer HS256 forjado. O GET de controle sem token é 401.
Faça isto primeiro: Atualize o WSO2 API Manager para 4.5.0 update 57 (comunidade: carbon-apimgt PR 13752) ou mais recente.
Verifique após a atualização
CVE-2026-5430-Abraxas-Labs.py contra a build corrigida: o testemunho mapeado não deve aparecer.Se não puder atualizar imediatamente
Alvo apenas http://127.0.0.1:8088 (ou o loopback que você vinculou). Não aponte este script para a internet.
python3 CVE-2026-5430-Abraxas-Labs.py
Sucesso é o testemunho acima no corpo da resposta. Um 200 HTML genérico não é isso.
Stack de loopback usada para reproduzir. Imagens oficiais, a menos que um Dockerfile nesta pasta faça build a partir do código-fonte.
cd lab
docker compose up --force-recreate
Vincule a árvore do produto vulnerável ao lado do Compose se o YAML montar um diretório local (zip do plugin / tag de código-fonte da tabela de versões). Não publique nada exceto 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 pacote de divulgação está licenciado sob a GNU Affero General Public License v3.0. Ver LICENSE.
Este pacote é para o fornecedor, o proprietário do site e labs licenciados. O script se comunica com 127.0.0.1. Usá-lo contra sistemas que você não possui não é autorizado pela Abraxas Labs. Sem garantia.