Sentry ابزاری جهت ردیابی خطا (Error Tracking) است که دادهها را با استفاده از یک SDK در زمان اجرای برنامه رصد میکند و به توسعهدهندگان این امکان را میدهد تا خیلی سریع، پیوسته و با کارایی بالا، خطاهای احتمالی اپلیکیشن خود را ردیابی و رفع نمایند.
Sentry-Javascript یک Sentry SDK رسمی برای جاوا اسکریپت است. آسیبپذیری با شناسه CVE-2023-50249 و CVSS 7.8 یک آسیبپذیری با شدت بالا در Sentry-Javascript است که به آسیبپذیری ReDoS(Regular Expression Denial of Service) در Astro SDK اشاره دارد. این آسیبپذیری در شرایط خاصی به مهاجم اجازه میدهد تا زمانهای محاسباتی بیش از حد روی سرور ایجاد کند که منجر به انکار سرویس (DoS) میشود.
محصولات آسیبپذیر
نسخههای 7.78.0 و 7.86.0 از Astro SDK از Sentry آسیبپذیر میباشند.
شرایطی که موجب میشود برنامههایی که از Sentry's Astro SDK استفاده میکنند تحت تأثیر آسیبپذیری قرار گیرند به شرح ذیل است:
1. برنامه از ابزار Sentry استفاده میکند:
- Sentry Middleware به صورت دستی ثبت شدهاست (نسخههای تحت تأثیر: 7.78.0-7.86.0).
- Astro در حالت SSR (سرور) یا ترکیبی پیکربندی شده است و همچنین علاوه بر استفاده از نسخه Astro 3.5.0 و جدیدتر، auto instrumentation نیز غیرفعال نشده باشد. (نسخههای تحت تاثیر: 7.82.0-7.86.0).
2. در برنامه، مسیرهایی با حداقل دو پارامتر مسیر پیکربندی شدهاست (به عنوان مثال /foo/[p1]/bar/[p2]).
توصیههای امنیتی
وصلهی این آسیبپذیری در نسخه 7.87.0 ارائه شده است.
از جانب محققان ارتقاء به آخرین نسخه SDK اکیدا توصیه شده است. با این حال، اگر امکانپذیر نباشد، مراحل کاهش آسیبپذیری به صورت زیر انجام شود:
1. اگر از Astro 3.5.0 یا جدیدتر استفاده میکنید، auto instrumentation را غیرفعال کنید.
2. میانافزار (middle ware) Sentry که به صورت دستی اضافه شده است را حذف کنید (اگر قبلا اضافه شدهباشد).
پس از این تغییرات، گزارش خطای Sentry همچنان کاربردی خواهد بود، اما برخی از جزئیات مانند تراکنشهای سمت سرور (و در نتیجه، ردیابیهای توزیع شده بین کاربر و سرور) حذف خواهند شد. بنابراین همچنان توصیه میشود در اسرع وقت بهروزرسانی به نسخه 7.87.0 انجام شود.
منابع خبر:
[1] https://nvd.nist.gov/vuln/detail/CVE-2023-50249
[2] https://github.com/getsentry/sentry-javascript/security/advisories/GHSA-x3v3-8xg8-8v72
- 40