Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-13447 — Prueba de concepto de exploit para CVE-2026-13447, un bypass de autenticación crítico en el plugin MStore API de WordPress mediante tokens JWT de Firebase falsificados, con una reproducción en laboratorio local. | Kitploit
Herramientas/GitHubGitHub/abraxas/cve-2026-13447
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebCriptografíaPruebas de PenetraciónAutenticaciónLabs y Práctica
GitHubabraxas/cve-2026-13447

CVE-2026-13447

Prueba de concepto de exploit para CVE-2026-13447, un bypass de autenticación crítico en el plugin MStore API de WordPress mediante tokens JWT de Firebase falsificados, con una reproducción en laboratorio local.

hace 4h 46mAún no revisado
Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

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

El plugin Mstore Api para WordPress es vulnerable a un Bypass de Autenticación mediante Falsificación de JWT en versiones hasta la 4.20.0, inclusive. Esto se debe a la falta de verificación de la firma criptográfica en la función FirebasePhoneAuthHelper::verify_id_token(), que decodifica y valida las claims del token de ID de Firebase (alg, kid, aud, iss) pero nunca llama a openssl_verify() ni a ningún equivalente para validar la firma del JWT contra los certificados de clave pública reales de Google. Esto hace posible que atacantes no autenticados falsifiquen un JWT de Firebase Phone Auth firmado con un par de claves RSA autogenerado y suplanten cualquier número de teléfono, lo que resulta en acceso no autorizado a cuentas de WordPress existentes o la creación de nuevas cuentas arbitrarias.

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
ProductoWordPress — MStore API
Afectadotodas las versiones hasta la 4.20.0 (lab 4.18.4; sin zip de la 4.20.0)
Parcheado4.21.1 y posteriores
Authninguna (ver mapa de código fuente)
LicenciaGNU Affero GPL v3.0
Labsolo 127.0.0.1 · paquete de divulgación para el proveedor/cliente, no un escáner

Aviso (del mapa de código fuente)

verify_id_token es el sink. HTTP es POST firebase_sms_v2 con JSON id_token, no un parámetro de consulta llamado verify_id_token.


Entrada

  • Método: POST
  • Ruta: /wp-json/api/flutter_user/firebase_sms_v2
  • Router: POST /wp-json/api/flutter_user/firebase_sms_v2 (también /?rest_route=/api/flutter_user/firebase_sms_v2). El permission_callback isPurchaseCodeVerified de FlutterUserController siempre es true. firebase_sms_verify_id_token lee php://input id_token. FirebasePhoneAuthHelper::verify_id_token comprueba alg, kid en la lista de claves de Google, aud/iss del firebase json subido, devuelve phone_number. firebase_sms_login_v2 busca registered_phone_number y devuelve generateCookieByUserId. La 4.21.1 añade la verificación de firma.
  • Notas: CVE-2026-13447 CWE-287 MStore API 4.18.4 (NVD hasta la 4.20.0; sin zip de la 4.20.0). Testigo POCWitness13447 en JSON. No es una reverse shell.

Cadena de llamadas

  • 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

Precondiciones del lab

  • MStore API 4.18.4
  • uploads/flutter_firebase/poc13447.json project_id=poc13447, opción mstore_firebase_file_name
  • admin registered_phone_number=+15551213447 display_name=POCWitness13447
  • el host del lab puede hacer GET a Google x509 (el kid debe estar en esa lista)

Testigo

El cuerpo JSON del POST contiene POCWitness13447 (displayname del admin) y la cookie. Un 200 genérico sin esa cadena no lo es.

No es éxito

  • id_token no es válido
  • No se encuentra el archivo de clave privada de Firebase
  • El usuario no existe
  • 200 sin POCWitness13447
  • reverse shell o conexión saliente aparte de la obtención del kid de Google

Parche / remediación

Haz esto primero: Actualiza MStore API a 4.21.1 o posterior.

Verificar tras la actualización

  • Vuelve a ejecutar CVE-2026-13447-Abraxas-Labs.py contra la compilación parcheada: el testigo mapeado no debe aparecer.
  • Confirma el aviso del proveedor / changeset en el árbol desplegado (ver referencias).
  • Una firma de WAF es un retraso, no un parche.

Si no puedes actualizar de inmediato

  • Deshabilita o aísla el componente afectado.
  • Busca la condición del testigo en producción (nuevos usuarios privilegiados, archivos inesperados, filas inyectadas — lo que nombre el mapa de este CVE).

Reproducción (lab autorizado)

Apunta solo a http://127.0.0.1:8088 (o al loopback que hayas vinculado). No apuntes este script a internet.

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

El éxito es el testigo anterior en el cuerpo de la respuesta. Un 200 HTML genérico no lo es.


Imágenes del lab

Stack de loopback usado para reproducir. Imágenes oficiales a menos que un Dockerfile en esta carpeta compile desde el código fuente.

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


Referencias

  • 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

  • Directorio de plugins: mstore-api

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

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

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


Registros (estructurados)

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.

Licencia

Este paquete de divulgación está licenciado bajo la GNU Affero General Public License v3.0. Ver LICENSE.


Descargo de responsabilidad

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.

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

Descargar herramienta