در نسخههای پیش از 0.5.6 از پکیج 9Router (یک AI router و Token saver)، یک آسیبپذیری امنیتی در بخش مدیریت تلاشهای ناموفق برای ورود (Login Limiter) شناسایی شده است. این نقص امنیتی که با شناسه CVE-2026-56682 ثبت شده، به مهاجمان اجازه میدهد تا محدودیتهای مربوط به تعداد دفعات ورود ناموفق را دور بزنند.
تحلیل فنی آسیبپذیری
در این نرمافزار، برای پیادهسازی مکانیزم Progressive Lockout (که پس از ۵ تلاش ناموفق، پاسخ HTTP 429 ارسال میکند)، مقدار هدر X-9r-Real-Ip به عنوان کل (Key) برای شناسایی کاربر در توابع getClientIp، checkLock و recordFail استفاده میشود. از آنجایی که این هدر توسط کلاینت ارسال میشود و قابل تغییر است، یک مهاجم میتواند در هر بار حدس رمز عبور، مقدار این هدر را تغییر دهد.
با این روش، هر درخواست در یک Bucket مجزا ثبت شده و سیستم هرگز متوجه تکرار تلاشهای یک کاربر واحد نمیشود؛ در نتیجه، مکانیزم محدودسازی (Throttling) فعال نشده و امکان اجرای حملات Brute-force بدون محدودیت فراهم میگردد.
شرایط بهرهبرداری (Exploitation)
این آسیبپذیری تنها در محیطهایی قابل بهرهبرداری است که درخواستهای HTTP مستقیماً به Next.js برسند و از Wrapper مربوط به custom-server.js استفاده نشود. در حالت پیشفرض، این Wrapper مقدار X-9r-Real-Ip را با آدرس واقعی TCP Socket جایگزین میکند تا از جعل (Spoofing) جلوگیری شود. با این حال، در استقرارهای غیر استاندارد (Non-default deployments) که فاقد این Sanitizer هستند، این حفزه امنیتی فعال است.
تاثیرات و راهکار
در صورت موفقیت در بازیابی رمز عبور از طریق Brute-force، مهاجم میتواند به دسترسی مدیریتی (Administrative Session) در داشبورد دست یابد. این مشکل در نسخه 0.5.6 برطرف شده است و توصیه میشود تمامی کاربران سریعاً نسبت به بهروزرسانی این پکیج اقدام کنند.