یک آسیبپذیری بحرانی در کتابخانه RingRTC که در اپلیکیشن Signal استفاده میشود، کشف شده است که میتواند به یک شرکتکننده مخرب در تماس اجازه دهد حتی پس از اینکه کاربر سعی میکند تماس را قطع کند، همچنان به دریافت صدا ادامه دهد.
جزئیات فنی و شناسه CVE
این آسیبپذیری با شناسه CVE-2026-113380 ردیابی میشود و نسخههای قدیمیتر از 2.72.0 کتابخانه RingRTC را تحت تأثیر قرار میدهد. این نقص امنیتی دارای امتیاز CVSS v4.0 برابر با 9.3 است که نشاندهنده سطح بحرانی آن میباشد. علاوه بر صدا، احتمال فعال ماندن مسیرهای ویدئویی (Video tracks) نیز وجود دارد، هرچند در توضیحات رسمی به آن اشاره نشده است.
مکانیسم حمله
این مشکل در ماشینهای حالت محدود (Finite-State Machines یا FSMs) که وظیفه هماهنگی تغییرات در وضعیت تماس و اتصال را بر عهده دارند، ریشه دارد. این FSMها دارای صفهای رویداد (Event queues) محدود با ظرفیت ۲۵۶ ورودی هستند. یک شرکتکننده از راه دور میتواند با ارسال رویدادهای زیاد، این صف را اشباع (Saturate) کند. این امر باعث میشود فرآیند بستن اتصال (Shutdown process) زمانی که کاربر دکمه قطع تماس را فشار میدهد، مختل شده و نتواند به درستی اجرا شود.
- سناریوی حمله: برخلاف حملات شنود غیرفعال، این سناریو مستلزم حضور یک عامل تهدید (Threat actor) به عنوان یکی از شرکتکنندگان در تماس است.
- پیامد: موفقیت در بهرهبرداری از این آسیبپذیری میتواند منجر به افشای مکالماتی شود که کاربر تصور میکند پس از قطع تماس به پایان رسیده است.
راهکار و اصلاحیه
توسعهدهندگان Signal با انتشار نسخه 2.72.0 از RingRTC، این مشکل را برطرف کردهاند. اصلاحیه جدید شامل موارد زیر است:
- معرفی یک پرچم قطع اتصال (Termination flag) مجزا که ماشینهای حالت بهصورت مستقل از صف رویدادها آن را بررسی میکنند.
- اعمال محدودیت زمانی ۵ ثانیهای برای انتظار در فرآیند بستن FSM.
- اجبار به ادامه فرآیند پاکسازی (Cleanup) حتی در صورت شکست عملیات قطع اتصال.
توصیه نهایی: تمامی کاربران باید اپلیکیشن Signal خود را به آخرین نسخه بهروزرسانی کنند. همچنین توسعهدهندگانی که از کتابخانه RingRTC استفاده میکنند، باید حتماً به نسخه 2.72.0 یا بالاتر مهاجرت کنند.