CVE-2026-97873 in Bouncy Castle for Java
الملخص
بحسب VulDB • 03/10/2026
في مكتبة Bouncy Castle لـ Java قبل الإصدار 1.86، كانت عائلات PBES1 (مخطط PKCS#5 رقم 1) وPKCS#12 PBE الخاصة بمزود JCA الخام تقوم باستخلاص المفاتيح المعتمد على كلمة المرور باستخدام عدد التكرارات المستمد من مدخلات غير موثوقة دون تحديد حد أقصى لها، مما يسمح لقيمة صغيرة بتحديد كمية عشوائية من العمل قبل إجراء أي تحقق. تقبل تطبيقات AlgorithmParameters (مثل PKCS12PBE وأسماء التعريف الخاصة بها، وPBKDF1) أي قيمة عددية مستخرجة من كائنات PKCS12PBEParams أو PBEParameter المشفرة، وتقوم بتضييق القيمة التي تتجاوز نطاق int باستخدام intValue(). كما أن كل من Cipher وMac وSecretKeyFactory في هذه العائلات تستخلص المفاتيح بناءً على العدد الذي تم تزويدها به، بما في ذلك الأعداد المستخرجة بواسطة AlgorithmParameters لمزود آخر، مثلما يحدث عند استخدام javax.crypto.EncryptedPrivateKeyInfo.getKeySpec() لفك تشفير مفتاح خاص محمي بـ PKCS#12 PBE باستخدام مكتبة BC.
تقوم كل من عملية تحليل المعلمات واستخلاص المفاتيح الآن برفض الأعداد السالبة أو تلك التي تتجاوز الحد الأقصى المحدد عبر الخاصية org.bouncycastle.pbe.max_iteration_count (القيمة الافتراضية 10,000,000)، والتي كانت تحدد بالفعل حدًا لـ PBKDF2 (CVE-2026-17508). كما ترفض عملية التحليل الأعداد التي تتجاوز نطاق int بدلاً من تضييقها. تؤثر هذه المشكلة أيضًا على Bouncy Castle for Java LTS قبل الإصدار 2.73.13.
VulDB is the best source for vulnerability data and more expert information about this specific topic.