Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-13447 — Proof-of-concept d'exploit pour CVE-2026-13447, un contournement d'authentification critique dans le plugin WordPress MStore API via des jetons JWT Firebase falsifiés, avec une reproduction en laboratoire local. | Kitploit
Outils/GitHubGitHub/abraxas/cve-2026-13447
Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebCryptographieTests d'IntrusionAuthentificationLabs et Pratique
GitHubabraxas/cve-2026-13447

CVE-2026-13447

Proof-of-concept d'exploit pour CVE-2026-13447, un contournement d'authentification critique dans le plugin WordPress MStore API via des jetons JWT Firebase falsifiés, avec une reproduction en laboratoire local.

il y a 4h 44mPas encore vérifié
Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

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

Le plugin Mstore Api pour WordPress est vulnérable à un contournement d'authentification par falsification de JWT dans les versions jusqu'à 4.20.0 incluse. Cela est dû à l'absence de vérification de signature cryptographique dans la fonction FirebasePhoneAuthHelper::verify_id_token(), qui décode et valide les revendications du jeton d'ID Firebase (alg, kid, aud, iss) mais n'appelle jamais openssl_verify() ni aucun équivalent pour valider la signature JWT par rapport aux certificats de clé publique réels de Google. Cela permet à des attaquants non authentifiés de falsifier un JWT Firebase Phone Auth signé avec une paire de clés RSA auto-générée et d'usurper n'importe quel numéro de téléphone, entraînant un accès non autorisé à des comptes WordPress existants ou la création de nouveaux comptes arbitraires.

CVECVE-2026-13447 · CVE.org
CWECWE-287
CVSSCritique : 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
ProduitWordPress — MStore API
Affectétoutes les versions jusqu'à 4.20.0 (labo 4.18.4 ; pas de zip 4.20.0)
Corrigé4.21.1 et versions ultérieures
Authaucune (voir la cartographie source)
LicenceGNU Affero GPL v3.0
Labo127.0.0.1 uniquement · pack de divulgation fournisseur/client, pas un scanner

Avis (issu de la cartographie source)

verify_id_token est le point de convergence. HTTP est POST firebase_sms_v2 avec un id_token JSON, et non un paramètre de requête nommé verify_id_token.


Point d'entrée

  • Méthode : POST
  • Chemin : /wp-json/api/flutter_user/firebase_sms_v2
  • Routeur : POST /wp-json/api/flutter_user/firebase_sms_v2 (également /?rest_route=/api/flutter_user/firebase_sms_v2). Le permission_callback isPurchaseCodeVerified de FlutterUserController est toujours vrai. firebase_sms_verify_id_token lit l'id_token de php://input. FirebasePhoneAuthHelper::verify_id_token vérifie alg, kid dans la liste de clés Google, aud/iss à partir du fichier firebase json téléversé, et renvoie phone_number. firebase_sms_login_v2 recherche registered_phone_number et renvoie generateCookieByUserId. La version 4.21.1 ajoute la vérification de signature.
  • Notes : CVE-2026-13447 CWE-287 MStore API 4.18.4 (NVD jusqu'à 4.20.0 ; pas de zip 4.20.0). Témoin POCWitness13447 en JSON. Pas un reverse shell.

Chaîne d'appels

  • 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éconditions du labo

  • MStore API 4.18.4
  • uploads/flutter_firebase/poc13447.json project_id=poc13447, option mstore_firebase_file_name
  • admin registered_phone_number=+15551213447 display_name=POCWitness13447
  • l'hôte du labo peut faire un GET Google x509 (le kid doit figurer dans cette liste)

Témoin

Le corps JSON du POST contient POCWitness13447 (displayname de l'admin) et le cookie. Un 200 générique sans cette chaîne n'est pas le bon résultat.

Échec

  • id_token est invalide
  • le fichier de clé privée Firebase est introuvable
  • l'utilisateur n'existe pas
  • 200 sans POCWitness13447
  • reverse shell ou connexion sortante autre que la récupération du kid Google

Correctif / remédiation

À faire en premier : mettre à jour MStore API vers 4.21.1 ou une version ultérieure.

Vérifier après la mise à niveau

  • Relancer CVE-2026-13447-Abraxas-Labs.py contre la version corrigée : le témoin cartographié ne doit pas apparaître.
  • Confirmer l'avis du fournisseur / le changeset dans l'arborescence déployée (voir les références).
  • Une signature WAF est un délai, pas un correctif.

Si vous ne pouvez pas mettre à jour immédiatement

  • Désactiver ou isoler le composant affecté.
  • Rechercher la condition témoin en production (nouveaux utilisateurs privilégiés, fichiers inattendus, lignes injectées — tout ce que la cartographie de cette CVE nomme).

Reproduction (labo autorisé)

Ciblez uniquement http://127.0.0.1:8088 (ou la boucle locale que vous avez liée). Ne pointez pas ce script vers Internet.

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

Le succès correspond au témoin ci-dessus dans le corps de la réponse. Un 200 HTML générique n'est pas le bon résultat.


Images du labo

Pile en boucle locale utilisée pour la reproduction. Images officielles sauf si un Dockerfile dans ce dossier est construit depuis les sources.

  • lab/docker-compose.yml
  • lab/docker-compose.override.yml
  • lab/Dockerfile
root@kitploit:~
cd lab
docker compose up --force-recreate

Liez l'arborescence du produit vulnérable à côté de Compose si le YAML monte un répertoire local (zip du plugin / tag source issu du tableau des versions). Ne publiez rien d'autre que 127.0.0.1.


Références

  • 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

  • Répertoire de plugins : mstore-api

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

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

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


Enregistrements (structurés)

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.

Licence

Ce pack de divulgation est sous licence GNU Affero General Public License v3.0. Voir LICENSE.


Avertissement

Ce pack est destiné au fournisseur, au propriétaire du site et aux labos autorisés. Le script communique avec 127.0.0.1. L'utiliser contre des systèmes que vous ne possédez pas n'est pas autorisé par Abraxas Labs. Aucune garantie.

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

Télécharger l’outil