نشر فريق Laravel تحذيرًا أمنيًا حرجًا بخصوص حارس API المستند إلى الرمز (token-based API guard). تسمح الثغرة للمهاجمين غير المصرح لهم بالتحقق كأي مستخدم حالي دون معرفة رمز API الخاص به، وذلك على قواعد بيانات MySQL و MariaDB. اكتشف هذه المشكلة هريستيجان ماناسييف، وتم إصلاحها في الإصدارين Laravel 12.68.0 و 13.29.0.
نرى أن هذه الثغرة، التي حصلت على درجة خطورة 9.2 ضمن نظام CVSS، تتطلب تحديثًا فوريًا لجميع التطبيقات المتأثرة. لم تتأثر حزم Sanctum و Passport بهذه المشكلة، حيث إنهما يستخدمان مشغلات حراسة خاصة بهما.
كيف عمل الاختراق؟
يكمن الخلل في فئة Illuminate\Auth\TokenGuard، وهي الفئة المسؤولة عن تشغيل حارس الرمز. يحدث الاختراق عندما يقوم المهاجم بإرسال قيمة اعتماد غير نصية «specially crafted, non-string credential value» يتم التعامل معها بشكل خاطئ أثناء البحث عن المصادقة، مما يؤدي إلى مطابقة استعلام قاعدة البيانات لسجل مستخدم غير مقصود بدلاً من فشل المصادقة كما هو متوقع.
قبل الإصلاح، كان الحارس يتحقق فقط من أن الرمز من الطلب ليس فارغًا قبل تمريره إلى مزود المستخدم. أضاف الإصلاح الآن فحص is_string() إلى كل من user() و validate(). وهذا يعني أن الحارس يرفض الآن القيم غير النصية، مثل المصفوفات، قبل الاستعلام عن قاعدة البيانات.
مشكلة إضافية: حذف البيانات عبر JSON:API
في نفس اليوم، أبلغ ماناسييف أيضًا عن مشكلة ثانية ذات خطورة متوسطة (CVSS v3.1 6.5)، تؤثر على موارد JSON:API التي أُضيفت في Laravel 12.45. تسمح هذه الثغرة بإنشاء طلب إلى نقطة نهاية للقراءة فقط «read-only endpoint» لتشغيل عملية حذف في قاعدة البيانات على جدول مرتبط، بدلاً من مجرد استرداد البيانات. يقوم الإصلاح بتغيير طريقة تحميل موارد JSON:API للعلاقات التي يطلبها الطلب.
ماذا يجب على المطورين فعله؟
صدرت الإصدارات Laravel 12.68.0 و 13.29.0 في 25 أغسطس 2026. إذا كنت تستخدم إصدارًا أقدم من 12.68.0، فإن تطبيقك معرض للخطر. إليك الخطوات التي يجب اتخاذها:
- قم بتحديث حزمة laravel/framework إلى 12.68.0 أو 13.29.0 أو أحدث باستخدام أمر composer update laravel/framework.
- راجع ملف config/auth.php لأي حارس يستخدم مشغل الرمز «token driver»، واعتبر هذه التطبيقات ذات أولوية عليا إذا كانت تعمل على MySQL أو MariaDB.
- قم بتشغيل composer audit لمقارنة الحزم المثبتة لديك بالاستشارات الأمنية المنشورة.
تتوفر تفاصيل كلا الاستشارتين الأمنيتين على صفحة أمان laravel/framework.
المصدر: laravel-news.com