کشف آسیب‌پذیری در get-jwks

کشف آسیب‌پذیری در get-jwks

تاریخ ایجاد

یک آسیب‌پذیری بحرانی با شناسه‌ی CVE-2025-59936 و شدت 9.4 در بسته‌ی npm get-jwks شناسایی شده است که در نسخه‌های ≤ 11.0.1 وجود دارد.

در طراحی آسیب‌پذیر، کلیدهای JWKS پس از بازیابی در یک کش مشترک ذخیره می‌شوند و بررسی issuer تنها پس از برداشت یا استفاده از کلید انجام می‌گیرد. این ترتیب باعث می‌شود مهاجم بتواند با مسموم‌سازی کش (Cache Poisoning)، کلیدهای عمومی جعلی را ثبت کند و سپس توکن‌هایی با iss متفاوت را معتبر جلوه دهد.

پیامد فنی این نقص، دور زدن اعتبارسنجی issuer و امکان جعل امضای JWT است که می‌تواند منجر به دسترسی غیرمجاز به APIها و منابع حساس شود.

نگهدارنده‌ی بسته نسخه‌ی اصلاح‌شده‌ی 11.0.2 را منتشر کرده است. اقدام فوری و حیاتی، ارتقای بسته به نسخه‌ی 11.0.2 است. در صورت تأخیر در ارتقا، می‌توان با بررسی صریح issuer پیش از استفاده از هر کلید کش‌شده یا Namespace کردن کش بر اساس issuer/jwks_uri، ریسک را کاهش داد.

توصیه‌های بلندمدت شامل محدودسازی منابع JWKS مورد اعتماد، تعیین TTL مناسب برای کش، جلوگیری از Race Conditionها و افزودن تست‌های واحد و یکپارچه برای شبیه‌سازی سناریوی Cache Poisoning است.

 

محصولات تحت‌تأثیر

  • اپلیکیشن‌ها و سرویس‌های Node.js که از بسته‌ی get-jwks نسخه ≤ 11.0.1 استفاده می‌کنند.
  • API Gatewayهایی که برای اعتبارسنجی JWT به get-jwks متکی هستند.
  • سرویس‌های احراز هویت و ورود (Authentication Services) که JWT را بررسی می‌کنند.
  • میکروسرویس‌ها و Backendهای مبتنی بر JWT در معماری ابری یا توزیع‌شده.
  • هر محصول یا نرم‌افزار ثالثی که به‌طور مستقیم یا غیرمستقیم از کتابخانه‌ی get-jwks استفاده کرده باشد.

 

توصیه‌های امنیتی

  • ارتقای فوری بسته به نسخه‌ی امن 11.0.2 یا بالاتر.
  • بررسی issuer پیش از استفاده از کلید کش‌شده، در صورت اجبار به استفاده از نسخه‌های قدیمی.
  • جدا کردن فضای کش بر اساس issuer یا jwks_uri برای جلوگیری از بازاستفاده‌ی کلیدها.
  • محدود کردن منابع JWKS و تعریف Allowlist از دامنه‌های مورد اعتماد.
  • تعیین TTL کوتاه برای کش تا کلیدهای مسموم مدت‌زمان طولانی باقی نمانند.
  • مانیتورینگ و بررسی لاگ‌ها جهت شناسایی درخواست‌های غیرعادی یا استفاده از کلیدهای تکراری.
  • اجرای تست‌های امنیتی شامل شبیه‌سازی حمله‌ی Cache Poisoning در فرآیند CI/CD.

 

منبع خبر:

[1]https://nvd.nist.gov/vuln/detail/CVE-2025-59936