تم اكتشاف ثغرة أمنية حرجة في تطبيق Telegram Desktop (المكتب)، تحمل المعرّف CVE-2026-107181، تسمح للمهاجمين بسرقة أي ملف محلي من جهاز الضحية، وربما الاستيلاء على الحساب بالكامل. صُنفت هذه الثغرة بخطورة عالية (8.1)، وتم معالجتها في الإصدار 7.2.9 من التطبيق.
تؤثر الثغرة على إصدارات Telegram Desktop حتى 7.2.8، وقد تم تأكيدها على نظام Windows بالإصدار 6.9.3. المشكلة تكمن في كيفية تعامل Telegram مع الروابط التي يتم النقر عليها، خاصة عند وجود أكثر من نسخة من التطبيق تعمل.
كيف عملت الثغرة؟
عندما ينقر المستخدم على رابط من نوع tg://، تقوم أنظمة التشغيل بتشغيل نسخة جديدة من Telegram. إذا كانت نسخة أخرى تعمل بالفعل، فإن النسخة الجديدة تمرر الرابط إلى النسخة العاملة عبر مقبس محلي (local socket). هنا تكمن المشكلة: Telegram يرسل الرابط كنص، ويستخدم الفاصلة المنقوطة (;) كفاصل بين الأوامر، لكنه لا يقوم بتهريب (escape) هذه الفاصلة إذا كانت جزءًا من الرابط نفسه. هذا يعني أن رابطًا مصممًا خصيصًا مثل «tg://x?a=1;CMD:quit;» لا يُفسَّر كعنوان URL واحد، بل كأمرين منفصلين: «OPEN:tg://x?a=1» و «CMD:quit». وهذا يسمح بحقن أوامر غير مصرح بها.
الجزء الثاني من الثغرة هو بروتوكول داخلي سري في Telegram يُدعى «interpret:». هذا البروتوكول لم يكن مصممًا للوصول الخارجي، وكان يستخدمه Telegram لنشر تحديثاته الخاصة؛ حيث يقرأ ملف تعليمات نصيًا من القرص ويرسل ملفات محددة إلى قناة. المشكلة هنا هي أن دالة InterpretSendPath لا تقوم بأي تحقق من الصلاحية أو طلب تأكيد من المستخدم قبل قراءة أي ملف وإرساله إلى الدردشة.
بدمج هاتين النقطتين، يستطيع المهاجم أولاً وضع ملف تعليمات (instruction file) على قرص الضحية، مثلاً عبر إرسال ملف مرفق إلى مجموعة، حيث يقوم Telegram Desktop تلقائيًا بتنزيل الملفات الصغيرة (حتى 8 ميجابايت) إلى مسار متوقع. ثم يرسل المهاجم رابطًا مصممًا خصيصًا يحتوي على حقن للأمر «OPEN:interpret:» يشير إلى ملف التعليمات هذا. بمجرد نقر الضحية على الرابط، يتم تفعيل بروتوكول «interpret:» الذي يقرأ الملف المستهدف (مثل ملفات تسجيل الدخول الحساسة) ويرسله إلى قناة يتحكم بها المهاجم، مما يؤدي إلى الاستيلاء على الحساب.
ماذا يعني هذا للمطورين والمصممين؟
هذه الثغرة هي تذكير صارخ بأهمية التحقق الدقيق من المدخلات وتنقية (sanitization) البيانات في جميع مستويات التطبيق، وخاصة عند التعامل مع البيانات الواردة عبر قنوات الاتصال بين العمليات (IPC). برأينا، لا يكفي الافتراض بأن البروتوكولات الداخلية آمنة ما لم يتم تأمينها بشكل صريح ضد المدخلات الخبيثة. يجب دائمًا إجراء عمليات تحقق من الصلاحية والتصريح قبل تنفيذ أي إجراءات حساسة، حتى لو كانت هذه الإجراءات جزءًا من وظيفة داخلية.
للمطورين والمصممين الذين يستخدمون Telegram Desktop، النصيحة الأهم هي التحديث الفوري إلى الإصدار 7.2.9 أو أي إصدار أحدث لضمان حماية حساباتهم وبياناتهم. التهاون في تحديث البرمجيات يمكن أن يعرضك لمخاطر أمنية جسيمة.
المصدر: beaksec.github.io