باگ خطرناک تلگرام دسکتاپ: تصاحب اکانت فقط با یک کلیک (CVE-2026-107181)

یک باگ جدی در تلگرام دسکتاپ منتشر شده که با فقط یک کلیک روی یک لینک، به مهاجم اجازه میداد فایلهای دلخواه را از روی دیسک قربانی بخواند و برای خودش بفرستد؛ از جمله فایلهای نشست (session) تلگرام، یعنی تصاحب کامل اکانت. شناسهی این آسیبپذیری CVE-2026-107181 است، امتیاز CVSS آن 8.1 (High) است، نسخههای تا 7.2.8 را تحت تأثیر قرار میداد و در نسخهی 7.2.9 رفع شده است.

ماجرا چه بود؟
وقتی تلگرام دسکتاپ از قبل باز است و روی یک لینک tg:// کلیک میکنید، سیستمعامل یک پروسهی دوم تلگرام اجرا میکند. این پروسه لینک را از طریق یک سوکت محلی به نسخهی در حال اجرا تحویل میدهد و خودش بسته میشود. فرمت این پیامها ساده است: هر دستور با یک ; تمام میشود، مثل OPEN:tg://...;.
باگ اول: تلگرام سمیکالنِ داخل خودِ لینک را escape نمیکرد. پس لینکی مثل tg://x?a=1;OPEN:... در طرف مقابل به چند دستور جدا شکسته میشد. این یک Command Injection کلاسیک است.
باگ دوم: داخل کد تلگرام یک scheme داخلی به اسم interpret: وجود داشت که تیم تلگرام از آن برای انتشار خودکار نسخهها در کانال استفاده میکرد. این ابزار یک فایل متنی دستورالعمل را میخواند و فایلی که در آن نام برده شده بود را بدون هیچ تأیید و بررسی مجوزی به یک کانال یا سوپرگروه میفرستاد.
حمله در عمل
- مهاجم قربانی را به یک سوپرگروه اضافه میکند. تنظیمات پیشفرض حریم خصوصی تلگرام این کار را بدون تأیید قربانی مجاز میداند.
- چند فایل متنی دستورالعمل در گروه میفرستد. تلگرام دسکتاپ فایلهای زیر 8 مگابایت در گروهها را خودکار در پوشهی
Downloads/Telegram Desktopدانلود میکند، یعنی در یک مسیر کاملاً قابل پیشبینی. - یک لینک https معمولی میفرستد که سرورش آن را به لینک
tg://دستکاریشده ریدایرکت میکند. - با کلیک قربانی، فایلهای
tdata/key_datasو فایل نشست به گروه مهاجم آپلود میشوند. اگر قربانی Local Passcode نگذاشته باشد (که پیشفرض همین است)، کلید رمزنگاری از یک رمز خالی ساخته شده و مهاجم با همین فایلها وارد اکانت میشود.
محقق این حمله را روی ویندوز (نسخهی 6.9.3) تأیید کرده است. تلگرام در کامیتی با پیام «Remove legacy interpret path helper» کل این ابزار قدیمی را حذف کرده است.
چه کار کنیم؟
- همین الان تلگرام دسکتاپ را به آخرین نسخه (7.2.9 یا بالاتر) آپدیت کنید.
- در تنظیمات تلگرام دسکتاپ Local Passcode بگذارید. بدون آن، فایلهای tdata عملاً کلید اکانت شما هستند.
- دانلود خودکار فایل در گروهها را محدود کنید و اجازهی اضافهشدن به گروه را روی «مخاطبین من» بگذارید.
- در Settings > Devices نشستهای فعال را بررسی کنید و هر دستگاه ناشناس را ببندید.
نظر من
برای ما که تلگرام عملاً ابزار کار روزمره است، این خبر از هر CVE دیگری این هفته مهمتر است. نکتهی جالبش این است که هیچکدام از دو باگ بهتنهایی فاجعه نبود: یک جداکنندهی escape نشده و یک ابزار داخلی فراموششده برای ریلیز. ولی کنار هم، یک کلیک کافی بود. درس مهندسیاش کاملاً روشن است: هر جا داده را serialize میکنید، جداکننده را escape کنید. ابزارهای داخلی و «فقط برای خودمان» را هم از بیلد نهایی بیرون بکشید. و اگر روی سیستمتان تلگرام دسکتاپ دارید، passcode نگذاشتن یعنی اکانتتان فقط یک فایل با دزدیدهشدن فاصله دارد.