Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-13447 — Proof-of-concept de exploit para CVE-2026-13447, um bypass crítico de autenticação no plugin MStore API do WordPress por meio de tokens JWT forjados do Firebase, com reprodução em laboratório local. | Kitploit
Ferramentas/GitHubGitHub/abraxas/cve-2026-13447
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebCriptografiaTestes de PenetraçãoAutenticaçãoLabs e Prática
GitHubabraxas/cve-2026-13447

CVE-2026-13447

Proof-of-concept de exploit para CVE-2026-13447, um bypass crítico de autenticação no plugin MStore API do WordPress por meio de tokens JWT forjados do Firebase, com reprodução em laboratório local.

Ver Repositório
há 5h 20mAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Abraxas Labs — CVE-2026-13447 — WordPress

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  CVE-2026-13447

CVE-2026-13447 — WordPress

WordPress — MStore API 4.18.4 — inspireui

O plugin Mstore Api para WordPress é vulnerável a Bypass de Autenticação via Falsificação de JWT em versões até, e incluindo, a 4.20.0. Isso se deve à ausência de verificação de assinatura criptográfica na função FirebasePhoneAuthHelper::verify_id_token(), que decodifica e valida as claims do token de ID do Firebase (alg, kid, aud, iss), mas nunca chama openssl_verify() ou qualquer equivalente para validar a assinatura do JWT em relação aos certificados de chave pública reais do Google. Isso torna possível para atacantes não autenticados forjar um JWT de Firebase Phone Auth assinado com um par de chaves RSA gerado por eles mesmos e se passar por qualquer número de telefone, resultando em acesso não autorizado a contas WordPress existentes ou na criação de novas contas arbitrárias.

CVECVE-2026-13447 · CVE.org
CWECWE-287
CVSSCrítico: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
ProdutoWordPress — MStore API
Afetadotodas as versões até 4.20.0 (lab 4.18.4; sem zip da 4.20.0)
Corrigido4.21.1 e posteriores
Autenticaçãonenhuma (ver mapa do código-fonte)
LicençaGNU Affero GPL v3.0
Labapenas 127.0.0.1 · pacote de divulgação para fornecedor/cliente, não é um scanner

Aviso (do mapa do código-fonte)

verify_id_token é o sink. O HTTP é POST firebase_sms_v2 com JSON id_token, não um parâmetro de query chamado verify_id_token.


Entrada

  • Método: POST
  • Caminho: /wp-json/api/flutter_user/firebase_sms_v2
  • Roteador: POST /wp-json/api/flutter_user/firebase_sms_v2 (também /?rest_route=/api/flutter_user/firebase_sms_v2). O permission_callback isPurchaseCodeVerified do FlutterUserController é sempre true. firebase_sms_verify_id_token lê o id_token de php://input. FirebasePhoneAuthHelper::verify_id_token verifica alg, kid na lista de chaves do Google, aud/iss do firebase json enviado, e retorna phone_number. firebase_sms_login_v2 procura registered_phone_number e retorna generateCookieByUserId. A 4.21.1 adiciona a verificação de assinatura.
  • Notas: CVE-2026-13447 CWE-287 MStore API 4.18.4 (NVD até 4.20.0; sem zip da 4.20.0). Witness POCWitness13447 em JSON. Não é um reverse shell.

Cadeia de chamadas

  • GET Google x509 metadata, pick a kid
  • Build unsigned-verify JWT RS256 kid=that, aud=poc13447, iss=https://securetoken.google.com/poc13447, phone_number=+15551213447
  • POST /wp-json/api/flutter_user/firebase_sms_v2 {id_token}
  • verify_id_token skips openssl_verify, returns +15551213447
  • firebase_sms_login_v2 get_users registered_phone_number=that phone -> user 1
  • JSON cookie + displayname POCWitness13447

Pré-condições do lab

  • MStore API 4.18.4
  • uploads/flutter_firebase/poc13447.json project_id=poc13447, opção mstore_firebase_file_name
  • admin registered_phone_number=+15551213447 display_name=POCWitness13447
  • o host do lab consegue fazer GET no Google x509 (o kid deve estar nessa lista)

Witness

O corpo do POST JSON contém POCWitness13447 (displayname do admin) e cookie. Um 200 genérico sem essa string não é o resultado.

Não é sucesso

  • id_token é inválido
  • O arquivo de chave privada do Firebase não foi encontrado
  • O usuário não existe
  • 200 sem POCWitness13447
  • reverse shell ou conexão de saída além da busca do kid do Google

Patch / remediação

Faça isto primeiro: Atualize o MStore API para 4.21.1 ou mais recente.

Verifique após a atualização

  • Execute novamente CVE-2026-13447-Abraxas-Labs.py contra a build corrigida: o witness mapeado não deve aparecer.
  • Confirme o aviso do fornecedor / changeset na árvore implantada (ver referências).
  • Uma assinatura de WAF é atraso, não um patch.

Se você não puder atualizar imediatamente

  • Desative ou isole o componente afetado.
  • Procure pela condição de witness em produção (novos usuários privilegiados, arquivos inesperados, linhas injetadas — o que o mapa desta CVE nomear).

Reprodução (lab autorizado)

Alvo apenas http://127.0.0.1:8088 (ou o loopback que você vinculou). Não aponte este script para a internet.

root@kitploit:~
python3 CVE-2026-13447-Abraxas-Labs.py

Sucesso é o witness acima no corpo da resposta. Um HTML 200 genérico não é o resultado.


Imagens do lab

Stack de loopback usada para reproduzir. Imagens oficiais, a menos que um Dockerfile nesta pasta faça build a partir do código-fonte.

  • lab/docker-compose.yml
  • lab/docker-compose.override.yml
  • lab/Dockerfile
root@kitploit:~
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 além de 127.0.0.1.


Referências

  • CVE-2026-13447 · NVD

  • CVE-2026-13447 · CVE.org

  • plugins.trac.wordpress.org/browser/mstore-api/tags/4.18.4/controllers/flutter-user.php#L829

  • plugins.trac.wordpress.org/browser/mstore-api/tags/4.18.4/controllers/flutter-user.php#L940

  • plugins.trac.wordpress.org/browser/mstore-api/tags/4.18.4/controllers/helpers/firebase-phone-auth-helper.php#L5

  • plugins.trac.wordpress.org/browser/mstore-api/trunk/controllers/flutter-user.php#L829

  • plugins.trac.wordpress.org/browser/mstore-api/trunk/controllers/flutter-user.php#L940

  • plugins.trac.wordpress.org/browser/mstore-api/trunk/controllers/helpers/firebase-phone-auth-helper.php#L5

  • www.wordfence.com/threat-intel/vulnerabilities/id/4a1127af-74f6-4748-9aee-5a8c6c2766a4?source=cve

  • github.com/advisories/GHSA-6wfp-pwm3-667v

  • nvd.nist.gov/vuln/detail/CVE-2026-13447

  • Diretório de plugins: mstore-api

  • Navegador Trac: plugins.trac.wordpress.org/mstore-api

  • Tags SVN: plugins.svn.wordpress.org/mstore-api

  • Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null


Registros (estruturados)

root@kitploit:~
# CVE-2026-13447  (structured records)

- input: `https://nvd.nist.gov/vuln/detail/CVE-2026-13447`
- CWE: CWE-287
- published: 2026-09-05T06:17:09.403

## NVD description

The Mstore Api plugin for WordPress is vulnerable to Authentication Bypass via JWT Forgery in versions up to, and including, 4.20.0 This is due to missing cryptographic signature verification in the FirebasePhoneAuthHelper::verify_id_token() function, which decodes and validates Firebase ID token claims (alg, kid, aud, iss) but never calls openssl_verify() or any equivalent to validate the JWT signature against Google's actual public key certificates. This makes it possible for unauthenticated attackers to forge a Firebase Phone Auth JWT signed with a self-generated RSA key pair and impersonate any phone number, resulting in unauthorized access to existing WordPress accounts or creation of new arbitrary accounts.

## MITRE description

The Mstore Api plugin for WordPress is vulnerable to Authentication Bypass via JWT Forgery in versions up to, and including, 4.20.0 This is due to missing cryptographic signature verification in the FirebasePhoneAuthHelper::verify_id_token() function, which decodes and validates Firebase ID token claims (alg, kid, aud, iss) but never calls openssl_verify() or any equivalent to validate the JWT signature against Google's actual public key certificates. This makes it possible for unauthenticated attackers to forge a Firebase Phone Auth JWT signed with a self-generated RSA key pair and impersonate any phone number, resulting in unauthorized access to existing WordPress accounts or creation of new arbitrary accounts.

## Affected

- inspireui MStore API – Create Native Android & iOS Apps On The Cloud 0 affected

## References (JSON sources only)

- https://plugins.trac.wordpress.org/browser/mstore-api/tags/4.18.4/controllers/flutter-user.php#L829
- https://plugins.trac.wordpress.org/browser/mstore-api/tags/4.18.4/controllers/flutter-user.php#L940
- https://plugins.trac.wordpress.org/browser/mstore-api/tags/4.18.4/controllers/helpers/firebase-phone-auth-helper.php#L5
- https://plugins.trac.wordpress.org/browser/mstore-api/trunk/controllers/flutter-user.php#L829
- https://plugins.trac.wordpress.org/browser/mstore-api/trunk/controllers/flutter-user.php#L940
- https://plugins.trac.wordpress.org/browser/mstore-api/trunk/controllers/helpers/firebase-phone-auth-helper.php#L5
- https://www.wordfence.com/threat-intel/vulnerabilities/id/4a1127af-74f6-4748-9aee-5a8c6c2766a4?source=cve
- https://github.com/advisories/GHSA-6wfp-pwm3-667v
- https://nvd.nist.gov/vuln/detail/CVE-2026-13447

## GitHub advisory

The Mstore Api plugin for WordPress is vulnerable to Authentication Bypass via JWT Forgery in...

The Mstore Api plugin for WordPress is vulnerable to Authentication Bypass via JWT Forgery in versions up to, and including, 4.20.0 This is due to missing cryptographic signature verification in the FirebasePhoneAuthHelper::verify_id_token() function, which decodes and validates Firebase ID token claims (alg, kid, aud, iss) but never calls openssl_verify() or any equivalent to validate the JWT signature against Google's actual public key certificates. This makes it possible for unauthenticated attackers to forge a Firebase Phone Auth JWT signed with a self-generated RSA key pair and impersonate any phone number, resulting in unauthorized access to existing WordPress accounts or creation of new arbitrary accounts.

Licença

Este pacote de divulgação é licenciado sob a GNU Affero General Public License v3.0. Ver LICENSE.


Isenção de responsabilidade

Este pacote é destinado ao fornecedor, ao proprietário do site e a 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 garantias.

abraxaslabs.tech · github.com/abraxas · @abraxas_null

Baixar ferramenta