آسیبپذیریها (CVE-2021-40823، CVE-2021-40824) در اکثر برنامههای کاربردی کلاینت برای پلتفرم ارتباطی غیرمتمرکز Matrix شناسایی شدهاند که به اطلاعات مربوط به کلیدهای مورد استفاده برای انتقال پیامها در چتهای رمزگذاریشده سرتاسر (E2EE) اجازه میدهد به دست آمده. مهاجمی که یکی از کاربران چت را به خطر می اندازد می تواند پیام هایی را که قبلاً از برنامه های کلاینت آسیب پذیر برای آن کاربر ارسال شده است رمزگشایی کند.
عملیات موفقیت آمیز نیاز به دسترسی به حساب گیرنده پیام دارد. دسترسی را می توان از طریق نشت پارامترهای حساب یا از طریق هک سرور Matrix که کاربر از طریق آن متصل می شود به دست آورد. این آسیبپذیریها بیشترین خطر را برای کاربران اتاقهای گفتگوی رمزگذاریشده که سرورهای Matrix کنترلشده توسط مهاجمان به آنها متصل هستند، ایجاد میکند. مدیران چنین سرورهایی ممکن است سعی کنند جعل هویت کاربران سرور را به منظور رهگیری پیامهای چت ارسال شده از برنامههای کلاینت آسیبپذیر، جعل کنند.
این آسیبپذیریها ناشی از خطاهای منطقی در اجرای مکانیسم پخش کلید پیشنهادی در matrix-js-sdk < 12.4.1 (CVE-2021-40823)، matrix-android-sdk2 < 1.2.2 (CVE-2021-40824) است. ، ماتریس -rust-sdk < 0.4.0، FamedlySDK < 0.5.0 و Nheko ≤ 0.8.2. پیادهسازیهای مبتنی بر کتابخانههای matrix-ios-sdk، matrix-nio و libolm در معرض آسیبپذیری نیستند.
بر این اساس، آسیبپذیریها در همه برنامههایی که کد مشکلدار را قرض میگیرند ظاهر میشوند و مستقیماً بر پروتکلهای Matrix و Olm/Megolm تأثیر نمیگذارند. به طور خاص، این مشکل بر عنصر اصلی کلاینت Matrix (Riot سابق) برای وب، دسکتاپ و اندروید و همچنین برنامهها و کتابخانههای مشتری شخص ثالث، از جمله FluffyChat، Nheko، Cinny و SchildiChat تأثیر میگذارد. این مشکل در کلاینت رسمی پلتفرم iOS و همچنین در برنامه های Chatty، Hydrogen، mautrix، purple-matrix و Siphon ظاهر نمی شود.
این آسیبپذیریها در طول ممیزی امنیتی مشتری Element شناسایی شدند. رفع اشکال اکنون برای همه مشتریان آسیب دیده منتشر شده است. به کاربران توصیه میشود قبل از نصب بهروزرسانی، فوراً بهروزرسانیها را نصب کنند و کلاینتها را آفلاین کنند. هیچ مدرکی مبنی بر بهره برداری از آسیب پذیری قبل از انتشار پچ وجود ندارد. تعیین واقعیت یک حمله با استفاده از گزارشهای مشتری و سرور استاندارد غیرممکن است، اما از آنجایی که حمله مستلزم به خطر انداختن حساب است، مدیران میتوانند وجود لاگینهای مشکوک را با استفاده از گزارشهای احراز هویت در سرورهای خود تجزیه و تحلیل کنند و کاربران میتوانند لیست دستگاههای مرتبط را ارزیابی کنند. به حساب خود برای اتصالات مجدد اخیر و اعتماد تغییرات وضعیت.
مکانیسم اشتراک کلید، که در اجرای آن آسیبپذیریها یافت شد، به کلاینتی که کلیدی برای رمزگشایی یک پیام ندارد، اجازه میدهد تا از دستگاه فرستنده یا دستگاههای دیگر آن، کلیدها را درخواست کند. به عنوان مثال، چنین قابلیتی برای اطمینان از رمزگشایی پیام های قدیمی در یک دستگاه کاربر جدید یا اگر کاربر کلیدهای موجود را گم کند، ضروری است. مشخصات پروتکل به طور پیشفرض تجویز میکند که به درخواستهای کلیدی پاسخ ندهید و آنها را به طور خودکار فقط به دستگاههای تأیید شده همان کاربر ارسال کنید. متأسفانه در پیاده سازی های عملی این الزام برآورده نشد و درخواست های ارسال کلید بدون شناسایی مناسب دستگاه پردازش می شد.
منبع: opennet.ru