توضیحات

آسیب ‌پذیری 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
هشدار سایبری CVE-2026-107181
شکل 1: تفسیر جدول CVSS

لیست محصولات آسیب پذیر

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 پیامد نهایی قابل انتظار در زنجیره بهره‌ برداری از این آسیب ‌پذیری است.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2026-107181
  2. https://www.cvedetails.com/cve/CVE-2026-107181/
  3. https://beaksec.github.io/posts/telegram-desktop-one-click-account-takeover/
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2026-107181
  5. https://vuldb.com/vuln/414997
  6. https://github.com/telegramdesktop/tdesktop/commit/db3405699f8fc3ae28a58d2348b7d13a43c0590a
  7. https://github.com/telegramdesktop/tdesktop/releases/tag/v7.2.9
  8. https://github.com/telegramdesktop/tdesktop/blob/v7.2.8/Telegram/SourceFiles/support/support_helper.cpp#L673-L751
  9. https://www.vulncheck.com/advisories/telegram-desktop-before-7.2.9-ipc-record-injection-file-exfiltration-via-interpret-scheme
  10. https://nvd.nist.gov/vuln/detail/cve-2026-107181
  11. https://cwe.mitre.org/data/definitions/143.html