أخطر باب خلفي في جافا: كيف يتيح خلل JWT في pac4j للهاكرز الدخول من الباب مباشرة
العنوان الفرعي: ثغرة حرجة في pac4j-jwt تمكّن المهاجمين من انتحال شخصية أيّ شخص - من دون كلمة مرور.
تخيّل أن تستيقظ لتجد أن أكثر أنظمة شركتك أمانًا قد تم الوصول إليها - ليس على يد هاكر عبقري يستخدم بيانات اعتماد مسروقة، بل على يد أي شخص صادف أنه اكتشف مفتاحًا عامًا. هذا هو سيناريو الكابوس الذي كادت مئات المؤسسات أن تقع فيه، لولا تجنّبها بصعوبة بفضل خلل مدمّر في مكتبة المصادقة الشهيرة pac4j-jwt في جافا. تم تتبّع هذا الخلل تحت المعرّف CVE-2026-29000، وقد منح المهاجمين مفاتيح كل الأبواب - لا كلمة مرور، لا سر، فقط قليل من تزوير الرموز بذكاء.
تشريح اقتحام صامت
في قلب هذا الاختراق تكمن هفوة برمجية دقيقة، تكاد لا تُرى. مكتبة pac4j-jwt، التي تثق بها الشركات والمطورون حول العالم، صُممت للتحقق من هويات المستخدمين باستخدام رموز الويب JSON (JWTs). عادةً ما تكون JWTs محمية بطبقتين: التشفير لإخفاء البيانات، وتوقيع تشفيري لإثبات أنها لم تُعبث. لكن ماذا يحدث عندما يتجاوز النظام فحص التوقيع بالكامل؟
هذا بالضبط ما اكتشفه باحثو CodeAnt AI Security. إذا قام مهاجم بصياغة JWT بلا توقيع (ما يُسمى PlainJWT) ثم شفّره باستخدام مفتاح RSA العام الخاص بالخادم - وهو مفتاح غالبًا ما يكون متاحًا بسهولة في الوثائق أو عبر نقاط نهاية عامة - فإن مكتبة pac4j-jwt تفشل في ملاحظة غياب التوقيع. وبسبب فحص null في غير موضعه داخل الشيفرة، يتم تجاوز خطوة التحقق الحاسمة من التوقيع بصمت. ثم يثق الخادم عمياءً بأي ادعاءات داخل الرمز، بما في ذلك “admin: true”.
عمليًا، يمكن لأي شخص أن يكتب لنفسه تذكرة ذهبية. لا حاجة لكلمات مرور، ولا حاجة لكسر التشفير، ولا تُطلق أي إنذارات. وبالنسبة للمؤسسات التي تستخدم إعداد JwtAuthenticator المعرّض للخطر مع رموز مشفّرة بـRSA، كان الخطر فوريًا وكاملًا: إذ يمكن للمهاجمين انتحال أي مستخدم، بما في ذلك المدراء على أعلى المستويات.
رقّع بسرعة، أو واجه العواقب
استجاب مجتمع المصادر المفتوحة بسرعة نادرة. خلال يومي عمل من الإفصاح الخاص، أصدر مُشرف pac4j جيروم لولو ترقيعات لجميع الإصدارات المتأثرة: 4.5.9+ و5.7.9+ و6.3.3+. ومع ذلك، ظلّت نافذة الاستغلال مفتوحة على مصراعيها. وتُحث فرق الأمن على الترقية فورًا، وفحص الشيفرة بحثًا عن إعدادات رموز غير آمنة، ومراقبة أي نشاط JWT مريب.
هذا الحادث تذكير صارخ: حتى أقوى الأقفال الرقمية تصبح بلا قيمة إذا تم فصل نظام الإنذار عن طريق الخطأ. في عالم المصادقة، الثقة هي كل شيء - والثقة، كما يثبت هذا الخلل، يجب دائمًا التحقق منها.
WIKICROOK
- JWT (JSON Web Token): JWT هو رمز رقمي يُستخدم لنقل المعلومات بأمان وإدارة مصادقة المستخدم في تطبيقات الويب، مع دعم أمن قابل للتوسع وبدون حالة.
- المفتاح العام RSA: يقوم المفتاح العام RSA بتشفير البيانات أو التحقق من التواقيع. يتم مشاركته علنًا، لكن المفتاح الخاص وحده يمكنه فك التشفير أو إنشاء تواقيع صالحة.
- التحقق من التوقيع: يتحقق فحص التوقيع مما إذا كان التوقيع الرقمي صالحًا، بما يضمن أصالة البيانات وأنها لم تتعرض للتلاعب.
- تجاوز المصادقة: تجاوز المصادقة هو ثغرة تتيح للمهاجمين تخطي أو خداع عملية تسجيل الدخول، والحصول على وصول إلى الأنظمة دون بيانات اعتماد صالحة.
- درجة CVSS: تُقيّم درجة CVSS شدة الثغرات الأمنية من 0 إلى 10، حيث تشير الأرقام الأعلى إلى مخاطر أكبر وإلحاح أعلى للاستجابة.