در نسخههای کتابخانه Bouncy Castle برای زبان جاوا (Java) پیش از نسخه 1.86، یک نقص امنیتی در نحوه مدیریت تعداد تکرارهای (Iteration Count) مشتقسازی کلید شناسایی شد. این مشکل در خانوادههای PKCS#12 PBE و PBES1 (طرح PKCS#5 شماره 1) در ارائهدهنده JCA رخ میدهد.
جزئیات فنی آسیبپذیری
در این کتابخانه، تعداد تکرارهای مورد نیاز برای مشتقسازی کلید بر اساس رمز عبور (Password-based key derivation)، مستقیماً از ورودیهای غیرقابل اعتماد (Untrusted Input) دریافت میشد و هیچ محدودیتی برای این مقدار تعریف نشده بود. این موضوع باعث میشود یک مهاجم با ارسال ورودیهای خاص، مقدار پردازش مورد نیاز سیستم را به شدت افزایش دهد.
- تاثیر: از آنجایی که سیستم پیش از هرگونه تایید اعتبار (Verification)، شروع به پردازش با تعداد تکرارهای تعیین شده توسط کاربر میکند، یک ورودی کوچک میتواند باعث مصرف شدید منابع CPU شود.
- بخشهای آسیبپذیر: پیادهسازیهای
AlgorithmParametersشاملPKCS12PBEو شناسههای شیء (Object Identifier Aliases) مرتبط با آن و همچنینPBKDF1.
توصیه امنیتی
به مدیران SOC و مهندسین امنیت توصیه میشود در سریعترین زمان ممکن کتابخانه Bouncy Castle را به نسخه 1.86 یا نسخههای جدیدتر ارتقا دهند تا از وقوع حملات Denial of Service (DoS) جلوگیری شود.