یک آسیبپذیری امنیتی با شناسه CVE-2026-102414 در کتابخانه pbkdf2 (نسخههای تا 3.1.6) شناسایی شده است که میتواند منجر به اختلال در عملکرد برنامههای تحت JavaScript شود.
جزئیات فنی آسیبپذیری
این مشکل در بخش JavaScript fallback (فایل lib/sync.js) رخ میدهد. زمانی که طول رمز عبور از اندازه بلوک (Block Size) هضمکننده (Digest) بیشتر باشد، این کتابخانه در هر تکرار (Iteration)، رمز عبور را مجدداً هش میکند. برای اکثر الگوریتمها این مقدار 64 بایت و برای sha384 و sha512 برابر با 128 بایت است.
در این حالت، رمز عبور طولانی در هر تکرار به عنوان کلید به HMAC ارسال میشود و HMAC هر بار کلیدهای طولانی را بهطور کامل هش میکند. این امر باعث میشود پیچیدگی زمانی عملیات به O(iterations × password length) افزایش یابد.
تاثیرات و محیطهای آسیبپذیر
- توقف Event Loop: پردازشهای طولانیمدت در JavaScript میتوانند باعث مسدود شدن Event Loop شوند که در نهایت منجر به عدم پاسخگویی برنامه یا همان Denial of Service (DoS) میگردد.
- محیطهای متأثر: این نقص در نسخههای Node.js قدیمیتر از 0.12 و همچنین در محیط Bun (نسخه 1.0.0) مشاهده شده است.