
إثبات مفهوم للاستغلال لـ CVE-2026-13447، وهو تجاوز حرج للمصادقة في إضافة WordPress MStore API عبر رموز Firebase JWT المزيفة، مع إعادة إنتاج مخبرية محلية.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-13447
WordPress — MStore API 4.18.4 — inspireui
إن إضافة Mstore Api الخاصة بـ WordPress معرّضة لتجاوز المصادقة عبر تزوير JWT في الإصدارات حتى 4.20.0 ضمناً. ويعود ذلك إلى غياب التحقق من التوقيع التشفيري في الدالة FirebasePhoneAuthHelper::verify_id_token()، التي تقوم بفك ترميز والتحقق من مطالبات رمز Firebase ID (alg, kid, aud, iss) لكنها لا تستدعي أبداً openssl_verify() أو أي ما يعادلها للتحقق من توقيع JWT مقابل شهادات المفتاح العام الفعلية الخاصة بـ Google. وهذا يجعل من الممكن للمهاجمين غير المصادق عليهم تزوير رمز Firebase Phone Auth JWT موقّع بزوج مفاتيح RSA مُولَّد ذاتياً وانتحال أي رقم هاتف، مما يؤدي إلى وصول غير مصرح به إلى حسابات WordPress الموجودة أو إنشاء حسابات عشوائية جديدة.
| CVE | CVE-2026-13447 · CVE.org |
| CWE | CWE-287 |
| CVSS | حرج: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| المنتج | WordPress — MStore API |
| المتأثر | جميع الإصدارات حتى 4.20.0 (المختبر 4.18.4؛ لا يوجد ملف zip للإصدار 4.20.0) |
| المُرقَّع | 4.21.1 وما بعده |
| المصادقة | لا شيء (انظر خريطة المصدر) |
| الترخيص | GNU Affero GPL v3.0 |
| المختبر | 127.0.0.1 فقط · حزمة إفصاح للمورّد/العميل، وليست أداة فحص |
verify_id_token هو نقطة الوصول الحساسة. الاتصال عبر HTTP هو POST firebase_sms_v2 مع JSON id_token، وليس معامل استعلام باسم verify_id_token.
POST/wp-json/api/flutter_user/firebase_sms_v2GET Google x509 metadata, pick a kidBuild unsigned-verify JWT RS256 kid=that, aud=poc13447, iss=https://securetoken.google.com/poc13447, phone_number=+15551213447POST /wp-json/api/flutter_user/firebase_sms_v2 {id_token}verify_id_token skips openssl_verify, returns +15551213447firebase_sms_login_v2 get_users registered_phone_number=that phone -> user 1JSON cookie + displayname POCWitness13447يحتوي جسم POST JSON على POCWitness13447 (اسم عرض المسؤول) و cookie. استجابة 200 عامة بدون تلك السلسلة ليست هي المقصودة.
افعل هذا أولاً: حدّث MStore API إلى 4.21.1 أو أحدث.
تحقق بعد الترقية
CVE-2026-13447-Abraxas-Labs.py مقابل البناء المُرقَّع: يجب ألا يظهر الشاهد المُعيَّن.إذا لم تستطع التحديث فوراً
استهدف فقط http://127.0.0.1:8088 (أو عنوان loopback الذي ربطته). لا توجّه هذا السكربت إلى الإنترنت.
python3 CVE-2026-13447-Abraxas-Labs.py
النجاح هو الشاهد المذكور أعلاه في جسم الاستجابة. استجابة 200 HTML عامة ليست هي المقصودة.
حزمة loopback المستخدمة لإعادة الإنتاج. صور رسمية ما لم يقم Dockerfile في هذا المجلد بالبناء من المصدر.
cd lab
docker compose up --force-recreate
اربط شجرة المنتج المتأثرة بجانب Compose إذا كان ملف YAML يثبّت دليلاً محلياً (ملف zip للإضافة / وسم المصدر من جدول الإصدارات). لا تنشر شيئاً بخلاف 127.0.0.1.
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/trunk/controllers/flutter-user.php#L829
plugins.trac.wordpress.org/browser/mstore-api/trunk/controllers/flutter-user.php#L940
www.wordfence.com/threat-intel/vulnerabilities/id/4a1127af-74f6-4748-9aee-5a8c6c2766a4?source=cve
دليل الإضافات: mstore-api
متصفح Trac: plugins.trac.wordpress.org/mstore-api
وسوم SVN: plugins.svn.wordpress.org/mstore-api
Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null
# 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.
حزمة الإفصاح هذه مرخّصة بموجب GNU Affero General Public License v3.0. انظر LICENSE.
هذه الحزمة مخصّصة للمورّد، ومالك الموقع، والمختبرات المرخّصة. يتواصل السكربت مع 127.0.0.1. استخدامه ضد أنظمة لا تملكها غير مصرّح به من Abraxas Labs. لا يوجد ضمان.