Archive / post

Blog

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

Ramin Eslami3 min readUpdated 10/10/2026
امنیتتلگرامTelegram DesktopCVEآسیب‌پذیری
باگ خطرناک تلگرام دسکتاپ: تصاحب اکانت فقط با یک کلیک (CVE-2026-107181)

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

زنجیره‌ی حمله‌ی تصاحب اکانت تلگرام دسکتاپ با یک کلیک
زنجیره‌ی کامل حمله: از اضافه‌شدن قربانی به یک سوپرگروه تا دزدیدن فایل‌های نشست. منبع: beaksec

ماجرا چه بود؟

وقتی تلگرام دسکتاپ از قبل باز است و روی یک لینک 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 تلگرام دسکتاپ در گیت‌هاب
نسخه‌ی 7.2.9 تلگرام دسکتاپ که این مشکل را رفع کرده است. منبع: GitHub / telegramdesktop
کامیت حذف interpret در تلگرام دسکتاپ
کامیت db3405699f که ابزار قدیمی interpret را از کد تلگرام حذف کرد. منبع: GitHub

چه کار کنیم؟

  • همین الان تلگرام دسکتاپ را به آخرین نسخه (7.2.9 یا بالاتر) آپدیت کنید.
  • در تنظیمات تلگرام دسکتاپ Local Passcode بگذارید. بدون آن، فایل‌های tdata عملاً کلید اکانت شما هستند.
  • دانلود خودکار فایل در گروه‌ها را محدود کنید و اجازه‌ی اضافه‌شدن به گروه را روی «مخاطبین من» بگذارید.
  • در Settings > Devices نشست‌های فعال را بررسی کنید و هر دستگاه ناشناس را ببندید.

نظر من

برای ما که تلگرام عملاً ابزار کار روزمره است، این خبر از هر CVE دیگری این هفته مهم‌تر است. نکته‌ی جالبش این است که هیچ‌کدام از دو باگ به‌تنهایی فاجعه نبود: یک جداکننده‌ی escape نشده و یک ابزار داخلی فراموش‌شده برای ریلیز. ولی کنار هم، یک کلیک کافی بود. درس مهندسی‌اش کاملاً روشن است: هر جا داده را serialize می‌کنید، جداکننده را escape کنید. ابزارهای داخلی و «فقط برای خودمان» را هم از بیلد نهایی بیرون بکشید. و اگر روی سیستمتان تلگرام دسکتاپ دارید، passcode نگذاشتن یعنی اکانتتان فقط یک فایل با دزدیده‌شدن فاصله دارد.

منبع: beaksec: Telegram Desktop one-click account takeover