مقدمه
Auth0 یک آسیبپذیری اجرای کد از راه دور را در کتابخانه متنباز بسیار محبوب «JsonWebToken» برطرف کرده است. این کتابخانه توسط بیش از 22000 پروژه مورد استفاده قرار گرفته است و بیش از 36 میلیون بار در ماه در NPM دانلود شده است.
جزئیات آسیبپذیری
این آسیبپذیری با شناسه “CVE-2022-23529” و شدت بحرانی ردیابی میشود. این کتابخانه در پروژههای متن باز ایجاد شده توسط Microsoft، Twilio، Salesforce، Intuit، Box، IBM، Docusign، Slack، SAP و بسیاری دیگر استفاده میشود.
JsonWebToken یک کتابخانه منبع باز است که برای ایجاد، امضا و تأیید توکنهای وب JSON استفاده میشود. این کتابخانه یک استاندارد است که یک روش فشرده و مستقل را برای انتقال امن اطلاعات بین طرفین به عنوان یک آبجکت JSON تعریف میکند. این اطلاعات قابل اعتماد و تایید هستند چرا که به صورت دیجیتالی امضا شدهاند.
JsonWebToken توسط Okta Auth0 توسعه و نگهداری میشود و بیش از 9 میلیون بار در هفته دانلود میشود که نشاندهنده کاربرد گسترده آن است.
بهرهبرداری موفق از آسیبپذیری مورد بحث، میتواند مهاجمان را قادر به دور زدن مکانیسمهای احراز هویت، دسترسی به اطلاعات محرمانه و سرقت یا تغییر دادهها کند. با این حال مهاجمان باید ابتدا فرآیند مدیریت مخفی بین یک برنامه و سرور JsonWebToken را به خطر بیندازند که این امر، بهرهبرداری از این آسیبپذیری را دشوارتر کرده است.
به گفته محققان، مهاجمان میتوانند پس از تأیید یک توکن JWS که به طور مخرب ساخته شده است، موفق به حمله اجرای کد از راه دور روی سرورها با استفاده از JsonWebToken شوند. نقصی که این اجازه را میدهد در متد verify() است که برای تایید یک JWT و برگرداندن اطلاعات رمزگشاییشده استفاده میشود. این متد سه پارامتر token، secretOrPublicKey و options را میپذیرد. به دلیل عدم بررسی پارامتر secretOrPublicKey برای تعیین اینکه یک رشته یا بافر است، مهاجمان میتوانند یک آبجکت ساختگی را برای انجام نوشتن فایل دلخواه بر روی ماشین مورد نظر ارسال کنند.
محصولات تحت تأثیر
آسیبپذیری فوق، نسخههای قبل از نسخه 9.0.0 کتابخانه JsonWebToken را تحت تأثیر قرار میدهد.
توصیههای امنیتی
تیم Auth0 نسخه وصله شده 9.0.0 را برای رفع این آسیبپذیری منتشر کرده است. به کاربران توصیه میشود هر چه سریعتر بروزرسانی را انجام دهند.
منابع خبر
https://nvd.nist.gov/vuln/detail/CVE-2022-23529
- 158