Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-13447 — إثبات مفهوم للاستغلال لـ CVE-2026-13447، وهو تجاوز حرج للمصادقة في إضافة WordPress MStore API عبر رموز Firebase JWT المزيفة، مع إعادة إنتاج مخبرية محلية. | Kitploit
أدوات/GitHubGitHub/abraxas/cve-2026-13447
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويبالتشفيراختبار الاختراقالمصادقةمختبرات وتدريب عملي
GitHubabraxas/cve-2026-13447

CVE-2026-13447

إثبات مفهوم للاستغلال لـ CVE-2026-13447، وهو تجاوز حرج للمصادقة في إضافة WordPress MStore API عبر رموز Firebase JWT المزيفة، مع إعادة إنتاج مخبرية محلية.

عرض المستودع
7منذ يوم واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

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

إن إضافة 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 الموجودة أو إنشاء حسابات عشوائية جديدة.

CVECVE-2026-13447 · CVE.org
CWECWE-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_v2
  • الموجّه: POST /wp-json/api/flutter_user/firebase_sms_v2 (أيضاً /?rest_route=/api/flutter_user/firebase_sms_v2). دالة permission_callback الخاصة بـ FlutterUserController وهي isPurchaseCodeVerified تكون دائماً true. تقرأ firebase_sms_verify_id_token قيمة id_token من php://input. تتحقق FirebasePhoneAuthHelper::verify_id_token من alg و kid ضمن قائمة مفاتيح Google، و aud/iss من ملف firebase json المرفوع، وتُرجع phone_number. تبحث firebase_sms_login_v2 عن registered_phone_number وتُرجع generateCookieByUserId. يضيف الإصدار 4.21.1 التحقق من التوقيع.
  • ملاحظات: CVE-2026-13447 CWE-287 MStore API 4.18.4 (NVD حتى 4.20.0؛ لا يوجد ملف zip للإصدار 4.20.0). الشاهد POCWitness13447 في JSON. ليس reverse shell.

سلسلة الاستدعاء

  • 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

الشروط المسبقة للمختبر

  • 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
  • يمكن لمضيف المختبر تنفيذ GET Google x509 (يجب أن يكون kid ضمن تلك القائمة)

الشاهد

يحتوي جسم POST JSON على POCWitness13447 (اسم عرض المسؤول) و cookie. استجابة 200 عامة بدون تلك السلسلة ليست هي المقصودة.

ليست نجاحاً

  • id_token غير صالح
  • لم يتم العثور على ملف المفتاح الخاص لـ Firebase
  • المستخدم غير موجود
  • استجابة 200 بدون POCWitness13447
  • reverse shell أو اتصال خارجي بخلاف جلب kid من Google

الترقيع / المعالجة

افعل هذا أولاً: حدّث MStore API إلى 4.21.1 أو أحدث.

تحقق بعد الترقية

  • أعد تشغيل CVE-2026-13447-Abraxas-Labs.py مقابل البناء المُرقَّع: يجب ألا يظهر الشاهد المُعيَّن.
  • أكّد إشعار المورّد / مجموعة التغييرات في الشجرة المنشورة (انظر المراجع).
  • توقيع WAF هو تأخير، وليس ترقيعاً.

إذا لم تستطع التحديث فوراً

  • عطّل أو اعزل المكوّن المتأثر.
  • ابحث عن حالة الشاهد في بيئة الإنتاج (مستخدمون جدد ذوو صلاحيات، ملفات غير متوقعة، صفوف مُدخَلة — أي شيء تسميه خريطة هذا CVE).

إعادة الإنتاج (مختبر مصرّح به)

استهدف فقط http://127.0.0.1:8088 (أو عنوان loopback الذي ربطته). لا توجّه هذا السكربت إلى الإنترنت.

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

النجاح هو الشاهد المذكور أعلاه في جسم الاستجابة. استجابة 200 HTML عامة ليست هي المقصودة.


صور المختبر

حزمة loopback المستخدمة لإعادة الإنتاج. صور رسمية ما لم يقم Dockerfile في هذا المجلد بالبناء من المصدر.

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

اربط شجرة المنتج المتأثرة بجانب Compose إذا كان ملف YAML يثبّت دليلاً محلياً (ملف zip للإضافة / وسم المصدر من جدول الإصدارات). لا تنشر شيئاً بخلاف 127.0.0.1.


المراجع

  • 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

  • دليل الإضافات: 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


السجلات (منظمة)

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.

الترخيص

حزمة الإفصاح هذه مرخّصة بموجب GNU Affero General Public License v3.0. انظر LICENSE.


إخلاء المسؤولية

هذه الحزمة مخصّصة للمورّد، ومالك الموقع، والمختبرات المرخّصة. يتواصل السكربت مع 127.0.0.1. استخدامه ضد أنظمة لا تملكها غير مصرّح به من Abraxas Labs. لا يوجد ضمان.

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

تنزيل الأداة