توضیحات
آسیب پذیری CVE-2026-107181 در اپلیکیشن تلگرام دسکتاپ و در سازوکار ارتباطات بین پردازهای (Inter-Process Communication یا IPC) این اپلیکیشن وجود دارد. ریشه این ضعف به مدیریت نادرست جدا کننده رکوردها در پیام های IPC و پردازش ناامن لینک های اختصاصی تلگرام (URI Scheme) بازمیگردد. در این سازوکار، نقطه ویرگول (;) برای جداسازی رکوردهای IPC به کار میرود؛ اما نسخه های آسیب پذیر تلگرام هنگام انتقال داده های URL از طریق سوکت IPC، این کاراکتر را به درستی کد گذاری نمیکنند. در نتیجه، نقطه ویرگول موجود در لینک میتواند به عنوان جدا کننده یک رکورد جدید تفسیر شود. به این ترتیب، مهاجم میتواند با درج هدفمند نقطه ویرگول در یک لینک مخرب، مرز میان رکوردهای IPC را تغییر دهد و رکوردهای جدیدی را به جریان ارتباطی تزریق کند. این ضعف با عنوان «خنثی سازی نامناسب جداکننده های رکورد» (Improper Neutralization of Record Delimiters) مطابق با CWE-143 طبقه بندی شده است.
برای درک مسیر سوءاستفاده، ابتدا باید نحوه مدیریت لینک ها در تلگرام دسکتاپ را بررسی کرد. این اپلیکیشن از سازوکار تک نمونه ای (Single-Instance) استفاده میکند؛ به این معنا که اگر نمونه ای از تلگرام در حال اجرا باشد، درخواست های جدید از طریق یک سوکت لوکال به همان نمونه فعال منتقل میشوند.
در این فرآیند، اطلاعات لینک در قالب رکوردهای اختصاصی IPC منتقل میشوند که با نقطه ویرگول (;) از یکدیگر جدا شده اند. مشکل در نسخه های آسیب پذیر این است که نقطه ویرگول موجود در URL پیش از انتقال از طریق سوکت کد گذاری نمیشود. در نتیجه، مهاجم میتواند با درج این کاراکتر در یک لینک tg:// مخرب، رکوردهای جدیدی از جمله OPEN: را به جریان IPC تزریق کند. این ضعف، امکان تزریق رکورد (IPC Record Injection) را فراهم میسازد.
در میان دستورهای IPC، دستور OPEN: به دلیل نحوه پردازش URLها اهمیت امنیتی بیشتری دارد. برخلاف دستور CMD: که فقط مقادیر مشخصی مانند show و quit را میپذیرد، دستور OPEN: محدودیت کافی برای نوع Scheme لینک اعمال نمیکند. مهاجم میتواند با تزریق این دستور، تلگرام را به اجرای Scheme اختصاصی interpret: وادار کند. این Scheme به یک مدیریت کننده داخلی (Internal URI Handler) متصل است که در نسخههای آسیب پذیر، قابلیت ارسال فایل های لوکال به چت یا کانال تلگرامی را دارد.
مدیریت کننده interpret: در ابتدا برای اجرای دستورالعمل های مربوط به انتشار نسخه های تلگرام طراحی شده بود. این سازوکار با خواندن یک فایل متنی، پارامترهایی مانند from، channel، file و caption را دریافت کرده و فایل مشخص شده را به مقصد تلگرامی تعیین شده ارسال میکند. با این حال، در این فرآیند کنترل های لازم برای بررسی مجوز دسترسی و دریافت تأیید کاربر اعمال نمیشوند. همچنین، پارامتر from برای تطبیق شناسه حساب کاربری واردشده با شناسه تعیین شده در فایل دستورالعمل استفاده میشود؛ اما این بررسی فقط در صورت وجود پارامتر مذکور انجام میگیرد. بنابراین، مهاجم با حذف from میتواند این کنترل را دور بزند و فایل های لوکال قربانی را به چت یا کانالی تحت کنترل خود ارسال کند.
اجرای این زنجیره حمله علاوه بر کلیک کاربر روی لینک مخرب، به ذخیره فایل دستورالعمل روی دستگاه قربانی نیاز دارد. مهاجم ابتدا یک گروه تلگرامی ایجاد و قربانی را به آن اضافه میکند؛ اقدامی که با توجه به تنظیمات پیش فرض حریم خصوصی تلگرام، در برخی شرایط بدون تأیید کاربر امکان پذیر است. سپس فایل های متنی حاوی دستورالعمل های interpret: را در گروه قرار میدهد. تلگرام دسکتاپ در تنظیمات پیش فرض، فایل های معمولی پیوست شده در گروه ها را با حجم حداکثر 8 مگابایت به صورت خودکار دانلود میکند. مهاجم میتواند از این قابلیت برای ذخیره فایل دستورالعمل مخرب با نام و مسیر دلخواه روی دستگاه قربانی استفاده کند. این فایل ها برای اجرای دستورهای interpret: ضروری هستند؛ هرچند برخی محتواها مانند استیکرها، GIF ها و پیام های صوتی در حافظه پنهان داخلی اپلیکیشن ذخیره میشوند و از این مسیر قابل استفاده نیستند.
نکته مهم این است که مهاجم برای دسترسی به فایل دستورالعمل نیازی به دانستن نام کاربری ویندوز قربانی ندارد. مدیریت کننده interpret: مسیرهای نسبی را نیز میپذیرد و این مسیرها را نسبت به دایرکتوری کاری تلگرام تفسیر میکند. ازآنجا که محل ذخیره فایل های دانلود شده نسبت به این دایرکتوری قابل محاسبه است، مهاجم میتواند با استفاده از یک مسیر نسبی مانند ../../../Downloads/Telegram%20Desktop/instructions به فایل دستورالعمل دسترسی پیدا کند. به این ترتیب، نام کاربری ویندوز مانعی برای تعیین مسیر فایل نخواهد بود.
در ادامه، مهاجم لینکی با آدرس HTTPS در گروه منتشر کرده که سرور تحت کنترل او، با پاسخ HTTP 302 آن را به یک لینک مخرب tg:// هدایت میکند. با کلیک کاربر روی لینک HTTPS، مرورگر او را به لینک مخرب tg:// هدایت کرده و تلگرام دسکتاپ را باز میکند. سپس لینک از طریق سوکت IPC به نمونه فعال تلگرام منتقل شده و دستورهای تزریق شده OPEN: اجرا میشوند. استفاده از لینک واسط HTTPS ضروری است؛ زیرا کلیک مستقیم روی لینک tg:// در داخل تلگرام لزوماً سازوکار IPC آسیب پذیر را فعال نمیکند. البته ممکن است مرورگر پیش از باز کردن تلگرام، برای اجرای اپلیکیشن از کاربر تأیید بگیرد.
در نهایت، تلگرام با پردازش فایل های دستورالعمل از طریق interpret:، فایل های تعیین شده را به چت یا کانال مهاجم ارسال میکند. این فایل ها میتوانند شامل کلیدهای خصوصی SSH، پایگاه های داده رمز عبور مرورگرها، اعتبارنامه های سرویس های ابری و توکن های API باشند. تابع InterpretSendPath در هر بار اجرا فقط یک فایل را ارسال میکند؛ با این حال، مهاجم میتواند با قراردادن چند فایل دستورالعمل و تزریق رکوردهای متعدد OPEN:، فایل های مختلف را به صورت جداگانه به مقصد مورد نظر خود منتقل کند.
یکی از مهم ترین پیامدهای این آسیب پذیری، سرقت فایل های داده تلگرام (tdata) و بازیابی نشست فعال قربانی است. تلگرام اطلاعات لوکال کاربر، از جمله داده های نشست، را رمزگذاری میکند؛ اما سازوکار مدیریت کلید آن در تنظیمات پیش فرض میتواند به مهاجم امکان بازیابی این اطلاعات را بدهد.
در این سازوکار، کلید رمزگذاری داده (DEK) برای رمزگذاری اطلاعات کاربر به کار میرود. کلید رمزگذاری کلید (KEK) نیز با استفاده از رمز عبور لوکال کاربر و مقدار Salt محاسبه میشود و وظیفه رمزگذاری DEK را بر عهده دارد. فایل tdata/key_datas حاوی مقدار Salt و نسخه رمزگذاری شده DEK است.
اگر کاربر برای تلگرام رمز عبور لوکال تعیین نکرده باشد، فرآیند محاسبه KEK بدون استفاده از رمز عبور انجام میشود. از طرفی، مقدار Salt نیز بدون رمزگذاری در فایل key_datas قرار دارد. بنابراین، مهاجم با دسترسی به این فایل میتواند KEK را محاسبه کرده و DEK را بازیابی کند. سپس با استفاده از DEK، اطلاعات مجوز نشست در پروتکل MTProto را رمزگشایی کند.
برای بازیابی نشست، مهاجم به سه فایل key_datas، D877F783D5D3EF8Cs (حاوی اطلاعات رمزگذاری شده مجوز MTProto) و D877F783D5D3EF8C/maps (حاوی فهرست اطلاعات ذخیره شده حساب) نیاز دارد. مهاجم با استفاده از این فایل ها میتواند دایرکتوری tdata را بازسازی کرده و با اجرای تلگرام، نشست فعال قربانی را بازیابی کند. در نتیجه، امکان ربودن نشست و دسترسی غیرمجاز به حساب کاربری فراهم میشود.
تنظیم یک رمز عبور لوکال قوی، بازیابی نشست از فایل های سرقت شده را دشوار میکند؛ زیرا مهاجم برای محاسبه KEK به این رمز نیاز دارد. البته این کار مانع سرقت فایل ها نمیشود و فقط از بازیابی آسان نشست جلوگیری میکند. در نتیجه، سایر اطلاعات حساس ذخیره شده روی دستگاه همچنان در معرض سرقت خواهند بود.
در رکورد رسمی CVE، این آسیب پذیری با امتیاز 8.1 از 10 و شدت بالا (High) بر اساس استاندارد CVSS نسخه 3.1 ثبت شده است. بردار ارزیابی نسخه 3.1 نشان میدهد که حمله از راه دور و بدون نیاز به دسترسی یا مجوز قبلی امکان پذیر است؛ با این حال، اجرای موفق آن به تعامل کاربر نیاز دارد. در صورت سوءاستفاده، محرمانگی (Confidentiality) و یکپارچگی (Integrity) اطلاعات به شدت تحت تأثیر قرار میگیرند؛ اما این آسیب پذیری تأثیر مستقیمی بر دسترس پذیری (Availability) ندارد.
این آسیب پذیری در نسخه 6.9.3 تلگرام دسکتاپ روی سیستم عامل ویندوز آزمایش و تأیید شده است. با این حال، رکورد رسمی CVE تمام نسخه های قدیمی تر از 7.2.9 را آسیب پذیر اعلام میکند؛ این موضوع به معنای آزمایش عملی همه نسخههای این بازه نیست. تلگرام این آسیب پذیری را در نسخه 7.2.9 پچ کرده است.
CVSS
| Score | Severity | Version | Vector String |
| 8.6 | HIGH | 4.0 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N |
| 8.1 | HIGH | 3.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N |

لیست محصولات آسیب پذیر
| Versions | Product |
| Affected from 0 before 7.2.9 | Telegram Desktop |
لیست محصولات بروز شده
| Versions | Product |
| Unaffected at 7.2.9 | Telegram Desktop |
استفاده محصول در ایران
در این جدول، تعداد صفحات ایندکس شده در گوگل با دامنه .ir که Telegram Desktop را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.
| Approx. Usage in .ir Domain via Google (Total Pages) | Search Query (Dork) | Product |
| 24,700,000 | site:.ir “Telegram” | Telegram |
| 16,200 | site:.ir “Telegram Desktop” | Telegram Desktop |
نتیجه گیری
این آسیب پذیری با شدت بالا در سازوکار ارتباطات بین پردازه ای (IPC) تلگرام دسکتاپ، امکان تزریق رکوردهای مخرب و سوءاستفاده از مدیریت کننده داخلیinterpret: را فراهم میکند. مهاجم با فریب کاربر برای کلیک روی یک لینک مخرب قادر است فایل های لوکال، از جمله اطلاعات نشست تلگرام را سرقت کرده و از این طریق به حساب کاربری قربانی دسترسی غیرمجاز پیدا کند.
برای کاهش ریسک سوءاستفاده از این آسیب پذیری، اقدامات زیر توصیه میشود:
- بروزرسانی تلگرام دسکتاپ: این اپلیکیشن باید به نسخه 2.9 یا بالاتر بروزرسانی شود. در نسخه 7.2.9، Scheme آسیب پذیر interpret: و مدیریت کننده Support::InterpretSendPath حذف شدهاند و سازوکار کدگذاری جدا کننده رکوردها در ارتباطات IPC نیز اصلاح شده است. بروزرسانی، اصلی ترین و مؤثرترین راهکار برای رفع این آسیب پذیری و جلوگیری از سوءاستفاده از آن است.
- فعال سازی درخواست تعیین محل ذخیره فایل ها: گزینه «Ask where to save each file» در تنظیمات تلگرام فعال شود تا دانلود خودکار فایل های دریافتی متوقف گردد. این اقدام مانع ذخیره خودکار فایل های دستورالعمل مخرب روی دستگاه و فراهم شدن پیش نیاز اجرای آن ها از طریقinterpret: میشود.
- تغییر تنظیمات حریم خصوصی گروه ها: تنظیمات حریم خصوصی تلگرام به گونه ای تغییر کند که فقط مخاطبان کاربر امکان افزودن او به گروه ها را داشته باشند. این محدودیت، امکان اضافه کردن قربانی به گروه تحت کنترل مهاجم و استفاده از آن برای ارسال فایل های سرقت شده به مقصد مورد نظر را کاهش میدهد.
- تنظیم رمز عبور لوکال قوی: برای تلگرام دسکتاپ یک رمز عبور لوکال قوی و غیرقابل حدس تعیین شود. این اقدام با دشوارکردن محاسبه کلید رمزگشایی اطلاعات نشست، بازیابی نشست تلگرام با استفاده از فایل های سرقت شده را برای مهاجم دشوار میکند؛ هرچند مانع سرقت سایر فایل های لوکال نمیشود.
اجرای این اقدامات، به ویژه بروزرسانی تلگرام دسکتاپ به نسخه پچ شده، احتمال سوءاستفاده از این آسیب پذیری را کاهش میدهد و از سرقت فایل های لوکال، بازیابی نشست فعال و دسترسی غیرمجاز به حساب های تلگرام جلوگیری میکند.
امکان استفاده در تاکتیک های MITRE ATT&CK (در زمان اجرای حمله)
Initial Access (TA0001)
مهاجم میتواند لینک مخرب tg:// را از طریق یک کانال خارجی مانند وب سایت یا پیام برای قربانی ارسال کند. با باز کردن لینک توسط قربانی، Telegram Desktop آن را به نمونه فعال برنامه از طریق IPC منتقل میکند. از آنجا که مهاجم برای اجرای این زنجیره به حساب کاربری یا دسترسی قبلی به سیستم نیاز ندارد (PR:N)، این آسیب پذیری میتواند به عنوان نقطه ورود اولیه به داده ها و نشست Telegram قربانی مورد استفاده قرار گیرد. با این حال، باز شدن لینک توسط قربانی ضروری است.
Credential Access (TA0006)
یکی از مهم ترین پیامدهای این آسیب پذیری، دسترسی به اطلاعات احراز هویت ذخیره شده در سیستم قربانی است. مهاجم میتواند از قابلیت خواندن فایل محلی برای استخراج داده های نشست Telegram، به ویژه کلیدهای احراز هویت موجود در پوشه tdata، استفاده کند. این اطلاعات میتوانند برای جعل نشست قربانی و دسترسی به حساب Telegram او مورد استفاده قرار گیرند. بنابراین، این آسیب پذیری مستقیماً امکان دستیابی به داده های احراز هویت (Authentication Material) را فراهم میکند و با تاکتیک Credential Access مرتبط است.
Collection (TA0009)
پس از تزریق رکوردهای مخرب در کانال IPC، مهاجم میتواند handler داخلی interpret: را به گونه ای فراخوانی کند که فایل های محلی مورد نظر را بخواند. این قابلیت محدود به فایل های نشست Telegram نیست و در زنجیره گزارش شده، امکان خواندن فایل های محلی دلخواه نیز وجود دارد. در نتیجه، مهاجم میتواند اطلاعات مورد نظر خود را از سیستم قربانی جمع آوری کند؛ رفتاری که با تاکتیک Collection مطابقت دارد.
Exfiltration (TA00010)
این آسیب پذیری صرفاً امکان خواندن فایل های محلی را ایجاد نمیکند، بلکه مسیر ارسال فایل های استخراج شده به یک چت تحت کنترل مهاجم را نیز فراهم میسازد. handler مورد سوءاستفاده، فایل محلی را بدون بررسی مجوز مناسب و بدون نمایش تأییدیه به چت مقصد ارسال میکند. بنابراین، اطلاعات جمع آوری شده میتوانند مستقیماً از محیط قربانی خارج شوند. این رفتار مصداق مشخصی از Exfiltration است.
Impact (TA0040)
در صورت استخراج موفق کلیدهای نشست، مهاجم میتواند از آن ها برای تصاحب حساب Telegram قربانی استفاده کند؛ به خصوص در شرایطی که برای نشست محلی رمز عبور (Local Passcode) تنظیم نشده باشد. تصاحب حساب میتواند به دسترسی غیرمجاز به پیام ها، مخاطبان و سایر اطلاعات حساب منجر شود و همچنین امکان ارسال پیام از طرف قربانی را فراهم کند. بنابراین، Impact پیامد نهایی قابل انتظار در زنجیره بهره برداری از این آسیب پذیری است.
منابع
- https://www.cve.org/CVERecord?id=CVE-2026-107181
- https://www.cvedetails.com/cve/CVE-2026-107181/
- https://beaksec.github.io/posts/telegram-desktop-one-click-account-takeover/
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2026-107181
- https://vuldb.com/vuln/414997
- https://github.com/telegramdesktop/tdesktop/commit/db3405699f8fc3ae28a58d2348b7d13a43c0590a
- https://github.com/telegramdesktop/tdesktop/releases/tag/v7.2.9
- https://github.com/telegramdesktop/tdesktop/blob/v7.2.8/Telegram/SourceFiles/support/support_helper.cpp#L673-L751
- https://www.vulncheck.com/advisories/telegram-desktop-before-7.2.9-ipc-record-injection-file-exfiltration-via-interpret-scheme
- https://nvd.nist.gov/vuln/detail/cve-2026-107181
- https://cwe.mitre.org/data/definitions/143.html
گزارش اثبات آسیبپذیری CVE-2026-107181
اطلاعات آسیبپذیری
عنوان: آسیب پذیری IPC Record-Separator Injection در تلگرام دسکتاپ و افشای فایل از طریق interpret:
شناسه: CVE-2026-107181
وضعیت مشاوره: Advisory / Public Disclosure / Patch Available
امتیاز: CVSS: 8.6 (High)
محصول: Telegram Desktop
محصول / نسخههای آسیبپذیر
در نسخههای زیر:
- تلگرام دسکتاپ نسخه های قبل از 7.2.9 شامل 7.2.8 و قدیمی تر (از جمله 6.9.3 که در فهرست نسخه های آسیب پذیر ذکر شده است)
محیطهای درگیر
- کاربران تلگرام دسکتاپ در ویندوز (که از طریق PoC تأیید شده است) و از نظر تئوری macOS و لینوکس نیز تحت تأثیر قرار میگیرند اما آزمایش عملی انجام نشده است
- سناریوهایی که کاربر روی لینک tg:// کلیک میکند در حالی که برنامه در حال اجرا است
- حساب هایی که Local Passcode تنظیم نکرده اند (شرایط پیش فرض بسیاری از کاربران)
- کاربرانی که عضو گروههایی هستند که قابلیت دانلود خودکار فایل در آنها بهصورت پیشفرض فعال است.
کامپوننتهای آسیبپذیر
- فایل sandbox.cpp مکانیزم ارتباطی تک نمونه ای (single-instance) برای ارسال URL ها به نمونه در حال اجرا را در مؤلفه Core::Sandbox پیاده سازی میکند و وظیفه سریال سازی و deserialization دستورات IPC را نیز بر عهده دارد
- سازوکار IPC در فایل core/sandbox.cpp توابع Sandbox::socketConnected() و Sandbox::readClients() مسئول ارسال و پردازش پیام های IPC هستند. عدم Escape صحیح کاراکتر Semicolon (;) هنگام انتقال URL و استفاده از همین کاراکتر برای تفکیک رکوردها، امکان تزریق رکوردهای اضافی OPEN: را فراهم میکند
- پردازشگر URI Scheme اختصاصی interpret: یک مسیر داخلی و قدیمی برای پردازش فایل ها و ارسال آن ها به چت است
- تابع InterpretSendPath در فایل support_helper.cpp فاقد کنترل دسترسی و تأیید کاربر است. این تابع مجوز درخواست کننده را بررسی نمیکند و فیلد اختیاری from: نیز امکان دور زدن بررسی حساب کاربری را فراهم میکند در نتیجه، فایل های محلی میتوانند بدون تأیید کاربر و با استفاده از حساب فعال به چت یا کانال مشخص شده ارسال شوند
- تابع MainWidget::handleStartFiles در فایل mainwidget.cpp درخواست های دریافتی از مسیر interpret: را به تابع Support::InterpretSendPath منتقل میکند. این تابع صرفاً بخشی از مسیر اجرای آسیب پذیری (Attack Path) است
ریشه مشکل (Root Cause Analysis)
علت اصلی آسیب پذیری، ترکیب دو ضعف در مسیر پردازش درخواست های ورودی تلگرام دسکتاپ است که عبارت اند از استفاده از کاراکتر ; به عنوان جدا کننده بدون escape کردن مناسب در پروتکل IPC و همچنین داخل مسیر پردازش Scheme اختصاصی interpret: هیچ کنترل دسترسی یا تأیید صریحی از سوی کاربر وجود ندارد.
تابع Sandbox::socketConnected() در فایل core/sandbox.cpp، پیام های IPC را برای برقراری ارتباط میان پردازه های مختلف تلگرام دسکتاپ ایجاد میکند. این پیام ها از چند بخش تشکیل میشوند که هر بخش با یک شناسه متنی در ابتدای خود مشخص میشود؛ برای مثال، OPEN: یک شناسه دستوری است که به برنامه اعلام میکند محتوای بعد از آن، یک URL برای باز کردن است. در انتهای هر پیام نیز از کاراکتر ; به عنوان جداکننده ی دستورات استفاده میشود. تابع Sandbox::readClients() در پردازه ای که پیام IPC را دریافت میکند، محتوای پیام را از ابتدا بررسی کرده و با رسیدن به هر کاراکتر ; بخش قبل از آن را به عنوان یک دستور مستقل پردازش میکند. مشکل زمانی ایجاد میشود که URL ورودی خودش حاوی کاراکتر ; باشد و این کاراکتر پیش از قرار گرفتن URL در پیام IPC به درستی Escape نشود؛ در چنین شرایطی، تابع Sandbox::readClients() ممکن است بخشی از محتوای URL را به اشتباه پایان یک دستور تلقی کند و ادامه ی آن را به عنوان دستور IPC جدید پردازش کند. به این ترتیب، مهاجم میتواند به جای ارسال صرفاً یک درخواست برای باز کردن URL، دستورهای اضافی را نیز در همان پیام IPC قرار دهد و باعث شود برنامه آن ها را جداگانه اجرا کند.
در نسخه ی آسیب پذیر، کد socketConnected() برای ساخت پیام IPC از این الگو استفاده میکند:
for (const auto &url : cRefStartUrls()) {
commands += u"OPEN:"_q
+ url.toString(Qurl::FullyEncoded)
+ '; ';
}
نکته ی مهم این است که QUrl::FullyEncoded به تنهایی تضمین نمیکند کاراکتر ; در رشته ی URL به گونه ای تبدیل شود که نتواند به عنوان جداکننده دستورات IPC تفسیر شود. برای مثال، اگر URL ورودی به شکل زیر باشد:
https://example.com/page;OPEN:interpret:/tmp/instructions.txt
و کاراکتر ; بدون Escape شدن در پیام IPC قرار بگیرد، پیام حاصل میتواند ساختاری مشابه زیر پیدا کند:
OPEN:https://example.com/page;OPEN:interpret:/tmp/instructions.txt;
در این ساختار، تابع Sandbox::readClients() اولین کاراکتر ; را به عنوان پایان دستور اول در نظر میگیرد و بخش بعد از آن را نیز به عنوان یک دستور IPC مستقل پردازش میکند. بنابراین، محتوایی که در ابتدا بخشی از URL بوده است، میتواند به یک دستور جدید تبدیل شود.
این رفتار در همان پردازه ی تلگرام دسکتاپ که پیام IPC را دریافت میکند، اتفاق میافتد. تابع Sandbox::readClients() پیام دریافتی از سوکت IPC را بررسی میکند و با پیدا کردن هر کاراکتر ; دستور فعلی را از دستور بعدی جدا میکند.
for (int32 to = cmds.indexOf(QChar(';'), from);
to >= from;
to = (from < l) ? cmds.indexOf(QChar(';'), from) : -1) {
auto cmd = base::StringViewMid(cmds, from, to - from);
// Process CMD:, OPEN:, CTRL: and other records
from = to + 1;
}
به همین دلیل، اگر داده ی ورودی شامل این کاراکتر باشد و پیش از ارسال به درستی Escape نشود، امکان تزریق دستور اضافی به پیام IPC وجود دارد.
نکته ی فنی، مثال بالا صرفاً نحوه ی شکسته شدن ساختار پیام IPC را نشان میدهد، برای اثبات یک زنجیره ی بهره برداری عملی، باید نحوه ی پذیرش و پردازش URL و محدودیت های مربوط به Scheme interpret نیز در مسیر اجرای برنامه بررسی شود.
از آنجا که محتوای URL بدون محافظت مناسب در برابر جدا کننده ; وارد پیام IPC میشود، مهاجم میتواند با قرار دادن این کاراکتر در یک لینک tg://، ساختار پیام را تغییر دهد و باعث شود بخشی از محتوای URL به عنوان یک دستور مستقل تفسیر شود. برای مثال، اگر پیام اولیه به شکل OPEN:<URL>; باشد، قرار دادن ;OPEN:<URL>; در ادامه ی URL باعث میشود تابع Sandbox::readClients() آن را به دو دستور مجزا تقسیم کند. در اینجا منظور از دستورهای OPEN: پیام هایی هستند که با این شناسه شروع میشوند و به تلگرام دسکتاپ اعلام میکنند URL قرارگرفته پس از آن را باز کند. بنابراین، تزریق یک دستور OPEN: اضافی به این معناست که مهاجم میتواند برنامه را وادار کند علاوه بر URL اصلی، یک URL دیگر را نیز به عنوان درخواست مستقل پردازش کند. این رفتار با مفهوم CWE-143: Improper Neutralization of Record Delimiters مطابقت دارد؛ زیرا کاراکتر جدا کننده ی مورد استفاده در پروتکل IPC به درستی خنثیسازی (escape) نشده است.
با این حال، تزریق دستور IPC به تنهایی باعث ارسال یا افشای فایل های محلی نمیشود. برای رسیدن به این نتیجه، باید نحوه ی پردازش Scheme اختصاصی interpret: در نسخه ی آسیب پذیر را نیز بررسی کرد. تابع Application::checkStartUrls() در فایل core/application.cpp این Scheme را شناسایی میکند و درخواست مربوط به آن را از طریق مسیر مدیریت فایل های ورودی برنامه، شامل MainWidget::handleStartFiles()، به تابع Support::InterpretSendPath() منتقل میکند. تابع Support::InterpretSendPath() در فایل support/support_helper.cpp، یک فایل متنی را به عنوان دستورالعمل دریافت میکند و محتوای آن را خط به خط میخواند. این فایل در واقع شامل اطلاعاتی است که مشخص میکنند چه فایلی باید ارسال شود و ارسال به کجا انجام گیرد. برای این منظور، تابع فیلدهای مشخصی را از محتوای فایل استخراج میکند:
- مقدار channel: شناسه ی کانال یا مقصدی را مشخص میکند که فایل باید به آن ارسال شود
- مقدار file: مسیر فایل محلی مورد نظر برای ارسال را تعیین میکند
- مقدار caption: متن توضیحی یا عنوانی است که همراه فایل ارسال میشود
این مقادیر استخراج میشوند تا برنامه بتواند مقصد ارسال، فایل مورد نظر و توضیحات همراه آن را مشخص کند. پس از خواندن این اطلاعات، تابع مسیر فایل تعیین شده در فیلد file: را به کمک Storage::PrepareMediaList برای ارسال آماده میکند و سپس با فراخوانی thread->session().api().sendFiles(…)، فایل را از طریق API تلگرام به کانال یا گفت و گوی مشخص شده در دستورالعمل ارسال میکند. در نتیجه، اگر مهاجم بتواند برنامه را به اجرای این مسیر هدایت کند و فایل دستورالعملی با مقادیر مورد نظر در اختیار آن قرار دهد، امکان ارسال فایل های محلی به مقصدی که مهاجم تعیین کرده است فراهم میشود:
auto list = Storage::PrepareMediaList(
QStringList(filePath),
st::sendMediaPreviewSize,
premium);
if (!list.files.empty()) {
list.files.back().caption.text = caption;
thread->session().api().sendFiles(
std::move(list),
SendMediaType::File,
nullptr,
Api::SendAction(thread));
}
در این مسیر، کنترل مربوط به from: نیز اجباری نیست؛ تابع فقط در صورت وجود این فیلد، شناسه ی آن را با شناسه ی حساب فعال مقایسه میکند. نبودن فیلد from: به خودی خود باعث رد درخواست نمیشود. همچنین پیش از ارسال فایل، تأیید مستقلی از کاربر دریافت نمیشود. بنابراین، ترکیب تزریق رکورد OPEN: با قابلیت قدیمی interpret: میتواند به ارسال فایل های محلی، از جمله داده های حساس موجود در پوشه ی tdata، به کانال تحت کنترل مهاجم منجر شود.
در مجموع، علت ریشه ای آسیب پذیری CVE-2026-107181 صرفاً وجود یک Scheme قدیمی یا یک ضعف در IPC نیست؛ بلکه عدم خنثیسازی (escape) جدا کننده ی رکوردها در هنگام انتقال URL از طریق IPC، در کنار وجود یک مسیر داخلی برای ارسال فایل های محلی بدون تأیید کاربر است. ضعف نخست امکان تزریق رکوردهای جدید را فراهم میکند و ضعف دوم به مهاجم اجازه میدهد از این قابلیت برای افشای اطلاعات محلی سوءاستفاده کند.
این تحلیل با تغییرات commit رفع آسیب پذیری نیز مطابقت دارد. در commit با شناسه ی db34056، تلگرام از یکسو توابع EscapeTo7bit() و EscapeFrom7bit() را برای کدگذاری (escape) و بازیابی کاراکترهایی مانند ; اضافه کرد و از سوی دیگر، مسیر پردازش interpret: و تابع InterpretSendPath() را به طور کامل حذف کرد. این اصلاح در نسخه ی 7.2.9 اعمال شد.
بخش آسیبپذیر
رفتار ناامن سیستم:
تلگرام دسکتاپ در پردازش لینک های tg:// دریافتی از سوکت single-instance، کاراکتر جدا کننده ; را Escape نمیکند و به این ترتیب اجازه تزریق دستورات اضافی را میدهد. یکی از این دستورات میتواند scheme مربوط به interpret: را فعال کند که بدون هیچ احراز هویتی، فایل های محلی را خوانده و به یک کانال تلگرام ارسال میکند. این ترکیب منجر به افشای فایل های دلخواه (از جمله فایل های نشست) و در نهایت تصاحب حساب کاربری میشود.
نحوه سوءاستفاده مهاجم:
- مهاجم یک سوپرگروه تلگرام ایجاد کرده و قربانی را به آن اضافه میکند (تنظیمات حریم خصوصی پیش فرض تلگرام این را امکان پذیر میکند)
- مهاجم سه فایل متنی حاوی دستورالعملهای interpret: را در گروه آپلود میکند. تلگرام به طور پیش فرض فایل های گروه ها (تا حجم ۸ مگابایت) را به صورت خودکار در مسیری قابل پیش بینی دانلود میکند:
C:\Users\\Downloads\Telegram Desktop\
- مهاجم یک لینک https در گروه ارسال میکند که قربانی را به یک صفحه وب هدایت میکند. این صفحه سپس مرورگر را به یک آدرس tg:// مخرب هدایت میکند
- قربانی روی لینک کلیک میکند. یک پردازه یا instance جدید Telegram اجرا شده و URL مخرب (حاوی ; و دستور interpret:) را به پردازه یا instance در حال اجرا ارسال میکند
- پردازه ی در حال اجرا، دستور interpret: تزریق شده را پردازش کرده، فایل دستورالعمل دانلود شده را میخواند و فایل مشخص شده در آن (مانند tdata) را به کانال مهاجم ارسال میکند
- با در دست داشتن فایل های tdata و عدم وجود کد عبور محلی، مهاجم میتواند نشست تلگرام قربانی را در یک نصب جدید بازسازی کند و کنترل کامل حساب را به دست گیرد
نقش این آسیبپذیری در زنجیره حمله
این آسیب پذیری یک نقطه ورود اولیه (Initial Access) از طریق مهندسی اجتماعی و یک ابزار تصاحب حساب (Account Takeover) در زنجیره حمله محسوب میشود. این آسیب پذیری یک One-Click Account Takeover از راه دور است. مهاجم تنها با یک کلیک قربانی روی لینک، به فایل های session دسترسی پیدا کرده و کنترل کامل حساب را به دست میآورد
پیشنیازهای بهرهبرداری (Prerequisites)
- نصب بودن نسخه ی آسیب پذیر تلگرام دسکتاپ
- قربانی باید روی لینک tg:// کلیک کند
- تلگرام دسکتاپ باید در حال اجرا باشد (برای فعال شدن مسیر IPC)
- عدم تنظیم Local Passcode شرایط را ساده تر میکند (هرچند با passcode نیز فایل های رمز شده قابل استخراج اند)
رفتار مورد انتظار در حالت امن (Expected Secure Behavior)
- Escape کردن جداکننده های رکورد در سریال سازی IPC
- محدود کردن scheme مربوط به interpret: به فرآیندهای محلی معتبر یا حذف قابلیت های خطرناک آن
- درخواست تأیید کاربر قبل از خواندن و ارسال فایل های محلی
- هر عملیات حساس (مانند خواندن فایل و ارسال به کانال) باید احراز هویت و تأییدیه صریح از کاربر دریافت کند
- اصل Fail Secure، هرگونه URL با کاراکترهای غیرمجاز باید رد شود و دستورات ناشناس اجرا نشوند
راهکارها و کاهش ریسک (Mitigation / Patch Guidance)
اقدامات فوری برای کاهش ریسک:
- بروزرسانی فوری تلگرام دسکتاپ به نسخه 7.2.9 یا بالاتر
- فعال سازی کد عبور محلی (Local Passcode)، این کار فایل های نشست tdata را رمزنگاری میکند و حتی در صورت سرقت، مهاجم نمیتواند مستقیماً از آن ها استفاده کند
اقدامات کوتاهمدت / میانمدت برای کاهش ریسک:
- اجتناب از کلیک روی لینک های tg:// ناشناس، به ویژه در گروه های عمومی یا از منابع غیرقابل اعتماد
- بررسی خودکار دانلود فایل ها در تنظیمات Telegram
- غیرفعال کردن دانلود خودکار فایل ها در گروه ها یا فعال سازی گزینه «پرسیدن محل ذخیره برای هر فایل»
- محدود کردن امکان اضافه شدن به گروه ها فقط به مخاطبین (در تنظیمات حریم خصوصی تلگرام)
- آموزش کاربران در مورد خطرات کلیک روی لینک های ناشناس و تأیید نکردن درخواست های Open Telegram از منابع نامعتبر
اقدامات بلندمدت برای کاهش ریسک:
- سیاست بروزرسانی منظم
- استفاده از Two-Factor Authentication در سطح حساب Telegram
- بررسی دوره ای نشست های فعال تلگرام و باطل کردن نشست های ناشناس از تنظیمات Devices
- پیاده سازی فرآیندهای منظم تست نفوذ (Penetration Testing) و ارزیابی امنیتی برای کشف زود هنگام آسیب پذیری های مشابه در زیرساخت
تشخیص و مانیتورینگ (Detection & Monitoring)
نشانههای تلاش برای سوءاستفاده:
- آپلود غیرمنتظره فایل های tdata
- دریافت لینک های tg:// حاوی semicolon های متعدد
- لاگ های مرتبط با اجرای interpret:
- آپلود فایل های غیرعادی به یک کانال یا سوپرگروه تلگرام از حساب کاربر
- وجود فایل های متنی ناشناس در C:\Users\<user>\Downloads\Telegram Desktop\ که حاوی دستورالعمل های channel: و file: هستند
منابع پیشنهادی برای مانیتورینگ و پایش:
- بررسی فعالیت های غیرعادی حساب (ورود از دستگاه های جدید)
- مانیتورینگ فایل های دانلود شده در پوشه تلگرام دسکتاپ
- راهکارهای EDR برای شناسایی رفتارهای غیرعادی تلگرام دسکتاپ (مانند خواندن فایل های حساس و ارسال آن ها)
- لاگ های پراکسی یا فایروال برای شناسایی ترافیک خروجی غیرعادی به سرورهای تلگرام (اگرچه ترافیک تلگرام رمزنگاری شده است)
- ابزارهای DLP برای جلوگیری از ارسال فایل های حساس از طریق برنامه های پیامرسان
واکنش به حادثه (Incident Response)
- خروج فوری از تمام session ها از طریق تنظیمات حساب (Terminate all other sessions)
- اعمال فوری بروزرسانی
- تغییر رمز عبور و فعال سازی و یا بررسی 2FA
- در صورت تأیید حمله یا هک شدن حساب کاربری به مخاطبان اطلاع رسانی کنید و پیام های ارسالی بررسی کنید
- بررسی فایل های tdata برای اطمینان از عدم تغییرات ناخواسته
- جستجوی فایل های متنی ناشناس در پوشه Downloads که حاوی دستورالعمل های interpret: هستند
- بررسی کانال ها و گروه های تلگرام برای شناسایی آپلودهای غیرمجاز
- تغییر تمام رمزهای عبور و کلیدهای مرتبط
- نصب فوری وصله امنیتی و بروزرسانی فوری
- مستندسازی کامل حادثه (زمان وقوع، نشانهها، اقدامات انجامشده، درسآموختهها) و گزارش به مدیریت ارشد و تیم واکنش سریع (CSIRT)
جریان حمله (Attack Flow)
در نمودار زیر (شکل ۱)، مهاجم با ارسال لینک مخرب به قربانی، از نقص تزریق IPC برای اجرای دستور interpret: و سرقت فایل های نشست استفاده میکند.

اثبات مفهوم (PoC) — کاملاً غیرمخرب
آزمایشگاه تخصصی Vulnerbyte، این آسیب پذیری را در محیط ایزوله و کنترل شده با استفاده از نسخه آسیب پذیر بررسی و اجرا کرده است
- این آزمایشگاه شامل نسخه آسیب پذیر درایور تلگرام دسکتاپ نسخه ی ویندوز است
- اجرای PoC در محیط آزمایشگاهی منجر به ارسال خودکار فایل های حساس نشست تلگرام از سیستم قربانی به یک کانال یا گروه تحت کنترل مهاجم است
- این اثبات مفهوم صرفاً توصیفی و آموزشی بوده و شامل تغییرات مخرب نمیشود

رفع مسئولیت
این گزارش صرفاً با هدف آموزش، تحلیل فنی و ارتقای امنیت سازمانی تهیه شده است. هرگونه استفاده مخرب یا خارج از چارچوبهای قانونی از محتوای آن ممنوع است.
منابع
https://www.cve.org/CVERecord?id=CVE-2026-107181
https://nvd.nist.gov/vuln/detail/CVE-2026-107181
https://github.com/SeanDishman/telegram-cve-2026-107181
https://github.com/abdugafforov-bobur/cve-2026-107181-poc
https://github.com/00nx/telegram-account-takeover-poc
https://github.com/kinghacker0/Telegram-EvilDropper
https://github.com/telegramdesktop/tdesktop/commit/db3405699f8fc3ae28a58d2348b7d13a43c0590a
https://beaksec.github.io/posts/telegram-desktop-one-click-account-takeover/
https://cwe.mitre.org/data/definitions/143.html
Telegram Desktop
CVE-2026-107181 – IPC Record-Separator Injection Leading to Arbitrary File Exfiltration and Account Takeover
Affects
- Telegram Desktop (official desktop client for Windows, Linux, and macOS)
- Versions:
- All versions before 7.2.9 (confirmed on Windows 7.2.8 and 6.9.3)
- Components:
- Core::Sandbox (single-instance IPC socket handler)
interpret:scheme handler (legacy internal file-sending helper)
- Files:
sandbox.cpp(serialization/deserialization of IPC records)Support::InterpretSendPath()(file upload logic)
NOT VULNERABLE:
- Telegram Desktop version 7.2.9 and later (released September 17, 2026)
- Telegram mobile apps and Web version (do not use the affected desktop code path)
Description
CVE-2026-107181 is a high-severity IPC record-separator injection vulnerability in Telegram Desktop, discovered by researcher BeakSec and publicly disclosed in October 2026 .
The vulnerability resides in the single-instance IPC mechanism used by Telegram Desktop. When a second Telegram.exe process is launched (e.g., by clicking a tg:// link), it connects to the already-running instance via a local socket and transmits the URL as a text record in the format OPEN:<url>; .
The critical flaw is that semicolons within the URL are not escaped. Since the receiver splits the buffer on every semicolon to identify record boundaries, a URL containing a semicolon can inject additional OPEN: records .
The injected record can reach the interpret: scheme handler, a legacy internal helper originally used by Telegram’s release publishing scripts. This handler reads a local text file and sends the file specified within it to a chat without any authorization check or user confirmation. The optional from: field (which could restrict the sender) is not required, and omitting it skips the account check entirely .
By combining these two defects, an attacker can cause the victim’s running Telegram client to read arbitrary local files and upload them to an attacker-controlled chat. The most damaging target is Telegram’s own tdata directory, which contains session keys. If the victim has not set a local passcode, the three key files (key_datas, D877F783D5D3EF8Cs, and maps) are sufficient to fully reconstruct the session on another machine, resulting in complete account takeover .
Key technical characteristics:
- CWE: CWE-143 (Improper Neutralization of Record Delimiters) / CWE-77 (Command Injection)
- CVSS v3.1 Score: 8.1 (High)
- Attack Vector: Network
- Authentication Required: None
- User Interaction: Required (victim must click a crafted link)
- Public PoC: Yes – multiple repositories available
Attack Vector
Primary Attack Vector:
Remote / Network (requires user interaction)
Attack Scenario :
- The attacker creates a Telegram supergroup or channel and adds the victim. Default Telegram privacy settings often allow this without explicit confirmation.
- The attacker posts instruction text files in the group (e.g.,
instructions.txtcontainingchannel: <attacker_chat_id>andfile: tdata/key_datas). - Telegram’s default settings automatically download small files (≤ 8 MiB) from groups when the victim opens the group, placing them at a predictable local path.
- The attacker posts an innocuous HTTPS link in the same group.
- The victim clicks the link. The browser redirects to a crafted
tg://URL containing unescaped semicolons and stackedinterpret:commands. - The operating system launches a second Telegram process, which forwards the URL to the running instance over the socket. The semicolons split the record, injecting the
interpret:commands. - The
interpret:handler reads the instruction files and uploads the targeted local files (includingtdatasession keys) to the attacker’s chat without any confirmation dialog. - The attacker reconstructs the
tdatadirectory and opens the victim’s Telegram account on their own machine.
Key Characteristics:
| Attribute | Details |
|---|---|
| Attack Vector | NETWORK |
| Attack Complexity | LOW |
| Privileges Required | NONE |
| User Interaction | REQUIRED (victim must click link) |
| Scope | UNCHANGED |
| Confidentiality Impact | HIGH |
| Integrity Impact | HIGH |
| Availability Impact | NONE |
| Exploit Availability | Yes – public PoC on GitHub |
| Active Exploitation | Not confirmed as of publication |
Conditions Affecting Risk :
- Telegram Desktop already running on the victim’s machine
- Victim has no local passcode set (the KEK derives from an empty password)
- Attacker can add the victim to a group (default Telegram privacy setting)
- Group auto-download is enabled (default allows files ≤ 8 MiB)
- Victim clicks a link from an external browser (links clicked inside Telegram are handled in-process and do not hit the vulnerable socket path)
Impact
Successful exploitation allows a remote attacker to:
- Read and exfiltrate arbitrary local files accessible to the Telegram process
- Steal Telegram session keys (
tdatadirectory), enabling full account takeover - Access all Telegram conversations, contacts, and media associated with the victim’s account
- Send messages and files as the victim, potentially spreading the attack to the victim’s contacts
- Exfiltrate other sensitive files (documents, credentials) readable by the Telegram process
| Impact Area | Level | Description |
|---|---|---|
| Confidentiality | HIGH | Arbitrary local file read and exfiltration |
| Integrity | HIGH | Account takeover enables full control over the victim’s Telegram identity |
| Availability | NONE | No service disruption |
Important: The vulnerability is not remote code execution (RCE) in the traditional sense—it is an IPC command injection leading to arbitrary file read and exfiltration, with account takeover as the demonstrated impact .
Observed Exploitation & Threat Activity
- Discovery: BeakSec (security researcher)
- Public Disclosure: October 3, 2026 (write-up); updated October 7, 2026
- CVE Assigned: October 7, 2026
- Patch Released: Telegram Desktop 7.2.9 (September 17, 2026)
- Public PoC: Multiple repositories available on GitHub
- In-the-Wild Exploitation: Not confirmed as of publication
- CVSS Score: 8.1 (High)
- VulDB Meta Score: 7.2
- EPSS Score: Very low (0.00 CTI interest score)
Disclosure Timeline :
| Date | Event |
|---|---|
| September 16, 2026 | Telegram fixes the vulnerability |
| September 17, 2026 | Telegram Desktop 7.2.9 released |
| October 3, 2026 | BeakSec publishes technical write-up |
| October 7, 2026 | CVE-2026-107181 assigned and published |
| October 2026 | Public PoCs appear on GitHub |
Severity & Metrics
- CVSS v3.1: High (8.1)
- Attack Vector: NETWORK
- Attack Complexity: LOW
- Privileges Required: NONE
- User Interaction: REQUIRED
- Scope: UNCHANGED
- Confidentiality Impact: HIGH
- Integrity Impact: HIGH
- Availability Impact: NONE
Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
Additional Scoring:
- VulDB Meta Base Score: 7.2
- CNA Base Score: 8.1
Relevant CWE:
- CWE-143 – Improper Neutralization of Record Delimiters
- CWE-77 – Improper Neutralization of Special Elements used in a Command (‘Command Injection’)
- CWE-74 – Improper Neutralization of Special Elements in Output Used by a Downstream Component
Patch & Vendor Status
- Official Patch Available: Yes – Telegram Desktop 7.2.9 (released September 17, 2026)
- Vendor: Telegram FZ-LLC
- Fix Commit:
db3405699f8fc3ae28a58d2348b7d13a43c0590a - Fix Details: The patch escapes semicolons in IPC records and removes the legacy
interpret:helper entirely
Fixed Versions by Distribution:
| Distribution | Fixed Version |
|---|---|
| Telegram Desktop (upstream) | 7.2.9 and later |
| Debian (unstable) | 5.7.2+ds-6 |
| Debian 12 (bookworm) | 4.6.5+ds-2+deb12u1 |
Update Methods:
| Platform | Method |
|---|---|
| Windows / macOS | Update via built-in auto-updater, or download from https://telegram.org/ |
| Linux (Debian/Ubuntu) | sudo apt update && sudo apt upgrade telegram-desktop |
| Linux (Flatpak) | flatpak update |
| Verify version | Check Settings → Advanced → Version (should be 7.2.9+) |
Critical Reminder: The fix was released on September 17, 2026, but the vulnerability was not publicly disclosed until October. Users who did not update during that window may have been exposed.
Mitigation & Remediation
Immediate Actions
| Action | Method |
|---|---|
| Update Telegram Desktop to 7.2.9 or later | Apply the latest version immediately |
| Set a local passcode | In Telegram Settings → Privacy and Security → Local Passcode. Even if session files are exfiltrated, the passcode prevents easy decryption |
| Review active sessions | Settings → Privacy and Security → Active Sessions. Terminate any unrecognized sessions |
| Check group membership | Leave any unknown groups you were added to without consent |
Critical Warning: If your Telegram Desktop was running a vulnerable version and you clicked any suspicious tg:// or redirecting links from a browser, assume your session keys may have been compromised. Terminate all active sessions and log in again.
Short-Term Defensive Measures
If updating is not immediately possible :
- Disable automatic file downloads in groups (Settings → Advanced → Automatic media download → disable for groups)
- Restrict who can add you to groups (Settings → Privacy and Security → Groups → “My Contacts”)
- Avoid clicking links from untrusted sources that may redirect to
tg://URLs - Set a local passcode to add an encryption layer over session data
Long-term Defensive Measures
- Enable automatic updates for Telegram Desktop
- Maintain awareness of Telegram security advisories
- Regularly review active sessions and terminate unrecognized devices
- Use a local passcode as a defense-in-depth measure against session theft
Detection & Monitoring
Recommended Detection Sources:
| Source | Purpose |
|---|---|
| Telegram Settings → Active Sessions | Identify unrecognized devices logged into your account |
| Network monitoring | Detect unexpected file uploads from Telegram Desktop to unknown chats |
| Endpoint Detection & Response (EDR) | Monitor for unusual Telegram.exe child processes or file access patterns |
Indicators of Attempted Exploitation:
- Unexpected files appearing in a Telegram group (e.g.,
key_datas,D877F783D5D3EF8Cs,mapsuploaded without your action) - Unrecognized active sessions in Telegram settings
- Unexpected group memberships you did not join
- Telegram Desktop spawning additional processes from browser link clicks
Detection Strategy:
- Check Telegram Desktop version – ensure it is 7.2.9 or later
- Review Active Sessions for unrecognized logins
- Audit group memberships for unexpected additions
- Monitor for the specific file names (
key_datas,D877F783D5D3EF8Cs,maps) being sent in any chat
Post-Incident Response
If exploitation is suspected or confirmed :
- Immediately update Telegram Desktop to version 7.2.9 or later
- Terminate all active sessions except the current one (Settings → Privacy and Security → Active Sessions → Terminate All Other Sessions)
- Enable Two-Step Verification if not already enabled
- Set a local passcode if not already set
- Change your Telegram password (Two-Step Verification password)
- Review recent activity – check messages sent, files uploaded, and groups joined
- Notify contacts if your account may have sent them malicious links
- Document the incident – note timeline, suspicious links clicked, and any unauthorized activity
- Consider that other files beyond
tdatamay have been exfiltrated (documents, downloads, etc.) - If you were added to a suspicious group, leave it and report it
For Enterprise Environments:
- Enforce minimum Telegram Desktop version through MDM or application control policies
- Educate users on the risks of clicking links that may redirect to
tg://URLs - Consider restricting Telegram Desktop usage on managed devices if not business-required
References
- https://vuldb.com/zh/vuln/414997
- https://github.com/SeanDishman/telegram-cve-2026-107181
- https://github.com/abdugafforov-bobur/cve-2026-107181-poc
- https://github.com/00nx/telegram-account-takeover-poc
- https://core-jmp.org/2026/10/telegram-desktop-one-click-account-takeover-ipc-injection/
- https://beaksec.github.io/posts/telegram-desktop-one-click-account-takeover/
- https://github.com/telegramdesktop/tdesktop/commit/db3405699f8fc3ae28a58d2348b7d13a43c0590a
- https://cwe.mitre.org/data/definitions/143.html
بررسی آماری آسیب پذیری CVE-2026-107181 در کشور ایران
محصول آسیب پذیر: Telegram Desktop
میزان استفاده در ایران بر اساس سایت های آمار مرتبط با محصول
تلگرام یکی از محبوبترین و پرکاربردترین پیامرسانها در ایران است. اگرچه آمار رسمی و دقیقی از تعداد کاربران Telegram Desktop (نسخه دسکتاپ) در ایران منتشر نشده است، اما با توجه به محبوبیت بالای تلگرام در کشور و استفاده گسترده از نسخه دسکتاپ آن توسط کاربران حرفهای، دانشجویان، و کسبوکارها، میتوان گفت که میلیونها کاربر ایرانی به طور بالقوه از این نرمافزار استفاده میکنند.
میزان استفاده در ایران بر اساس موتورهای جستجو (بر اساس ایندکس های گوگل در بخش tools)
تعداد در زمان نگارش گزارش
|
موتور جستجو |
Dork | تعداد |
|
|
site:.ir “Telegram Desktop” |
1,020 |
| site:.ir “Telegram” |
24,400,000 |
وجود نمایندگی در ایران
شرکت Telegram FZ-LLC هیچ دفتر رسمی یا نمایندگی در ایران ندارد. کاربران ایرانی برای دریافت بروزرسانی های امنیتی باید از وب سایت رسمی تلگرام (desktop.telegram.org) یا از طریق خود نرم افزار (قابلیت بروزرسانی خودکار) اقدام کنند. هیچ گونه پشتیبانی رسمی از طرف شرکت سازنده در کشور وجود ندارد.
میزان استفاده بر اساس گزارشات تحقیقات بازار برای این محصول در ایران
اگرچه آمار رسمی و دقیقی از تعداد سیستمهای آسیبپذیر در ایران وجود ندارد، اما شواهد زیر نشاندهنده سطح قابل توجه ریسک است.
- محبوبیت تلگرام در ایران: تلگرام یکی از اصلی ترین پیام رسان ها در ایران است و نسخه دسکتاپ آن به دلیل سهولت استفاده و قابلیت های بیشتر، در میان کاربران حرفه ای و سازمان ها محبوبیت زیادی دارد. بسیاری از کاربران ایرانی نسخه دسکتاپ را برای مدیریت گروه ها، کانال ها و ارسال فایل های حجیم استفاده میکنند.
- استفاده گسترده از تلگرام در ایران: با حدود ۵۰ میلیون کاربر (علیرغم فیلترینگ)، تلگرام همچنان یکی از اصلی ترین ابزارهای ارتباطی، خبری و کانال محور در کشور است. بخش قابل توجهی از کاربران حرفهای و مدیران کانال از نسخه Desktop استفاده میکنند
- حضور فراگیر نسخه Desktop: کاربران ایرانی برای مدیریت کانال ها، ارسال فایل های حجیم، کار همزمان با چند حساب و محیط کاری، به نسخه Desktop وابسته هستند. بسیاری از این کاربران بروزرسانی ها را با تأخیر انجام میدهند (به ویژه به دلیل فیلترینگ و مشکلات دانلود)
- تخمین میزان استفاده: با توجه به حجم بالای کاربران تلگرام و سهم نسخه Desktop، میتوان تخمین زد که صدها هزار کاربر ایرانی (به خصوص کسانی که نسخه قبل از 7.2.9 را اجرا میکنند) به طور بالقوه در معرض این آسیب پذیری قرار دارند
منابع
https://iranstatis.com/infographic/iranian-users-multiplatform-social-media-1405/
https://negarmag.com/fa/news/1113463/این-پیام-رسان-همچنان-49-میلیون-کاربر-ایرانی-دارد
https://7sobh.com/بخش-گوناگون-66/40650025-اینستاگرام-پر-بازدیدترین-رسانه
https://www.khabaronline.ir/news/477640/از-تلگراف-دیروز-تا-تلگرام-جنجالی-امروز-پرونده-ای-درباره


