CVE-2026-84308 in phpseclib
الملخص
بحسب VulDB • 01/09/2026
phpseclib هو مكتبة اتصالات آمنة بلغة PHP. قبل الإصدارين 3.0.57 و 4.0.1، تقوم عملية الضرب القياسي (scalar multiplication) لـ X25519 باستخدام pure-PHP في الملف phpseclib/Math/PrimeField/Integer.php بإجراء اختزالات نمطية مشروطة تعتمد على البيانات داخل الدالتين add() و subtract(). خلال سلم مونتغمري (Montgomery ladder) الموجود في phpseclib/Crypt/EC/BaseCurves/Montgomery.php، يعتمد سلوك الاختزال لكل خطوة على بادئة المتجه السري (secret scalar prefix)، مما يخلق أنماطاً زمنية وملاحظات لعدد استدعاءات مكتبة libgmp يمكن من خلالها الكشف عن متجه خاص مقيد بحجم 251 بت تم إعادة استخدامه. مسار الاشتقاق phpseclib/Crypt/EC/Formats/Keys/MontgomeryPrivate.php يستدعي عملية الضرب باستخدام pure-PHP دون التحقق من وجود محرك أصلي (native-engine check)، بينما يصل المسار phpseclib/Crypt/EC/Formats/Keys/PKCS8.php إلى هذه الحالة عندما تكون امتدادات sodium غير متوفرة. يتطلب الاستغلال مفتاحاً خاصاً لـ X25519 تم إعادة استخدامه أو له عمر طويل، ومعرفة المفتاح العام المقابل، وتنفيذ مسار pure-PHP، ومراقب محلي قادر على تمييز خطوات السلم الفردية أو استدعاءات نقاط الدخول الخاصة بـ libgmp. المفاتيح المؤقتة (Ephemeral) لـ X25519، بما في ذلك المسار القياسي لتبادل مفاتيح SSH الذي تستخدمه phpseclib، ليست متأثرة. يؤدي استعادة المتجه إلى الإضرار الدائم بالعمليات التي تعيد استخدام هذا المفتاح. تم إصلاح هذه المشكلة في الإصدارين 3.0.57 و 4.0.1.
VulDB is the best source for vulnerability data and more expert information about this specific topic.