28 अक्टूबर को टोक्यो में OffensiveCon सम्मेलन में, शोधकर्ता सैफेलदीन अज़ीज़ ने Telegram के एनिमेटेड स्टिकर में zero-click कमजोरियों पर एक रिपोर्ट प्रस्तुत की — यानी ऐसी कमजोरियाँ जिनके लिए उपयोगकर्ता को कुछ भी क्लिक करने की आवश्यकता नहीं होती है: बस क्लाइंट द्वारा भेजे गए स्टिकर को रेंडर करना पर्याप्त है। घोषणा के अनुसार, rlottie लाइब्रेरी में, जिसका उपयोग Telegram क्लाइंट ऐसे स्टिकर बनाने के लिए करते हैं, कई memory-corruption bugs पाए गए, और स्टिकर की डिलीवरी में तार्किक त्रुटियों के कारण सर्वर-साइड स्टिकर सत्यापन को बायपास करना संभव हो गया। लेखक के अनुसार, iOS पर Telegram के लिए, यह श्रृंखला code execution तक ले जाती है। यह मुख्य रूप से iPhone और iPad मालिकों को प्रभावित करता है: Android और डेस्कटॉप पर, Telegram का नया इंजन पहले से ही स्टिकर रेंडर करता है, जबकि iOS में rlottie अभी भी उपयोग में है।

रिपोर्ट के बारे में क्या ज्ञात है

रिपोर्ट का शीर्षक "Stickers r-lot-tie Handle: Vulns, Bypasses, and Telegram's Zero-Click Attack Surface" है और यह सम्मेलन के दूसरे दिन, 28 अक्टूबर को टोक्यो समयनुसार सुबह 10:30 बजे कार्यक्रम में शामिल थी। आयोजकों ने प्रस्तुति के दौरान 01:32 UTC पर मंच से एक तस्वीर प्रकाशित की। अज़ीज़ की खोजों के लिए अभी तक कोई रिकॉर्डिंग, स्लाइड, सार्वजनिक विश्लेषण या CVE नंबर उपलब्ध नहीं हैं, इसलिए सामग्री के बारे में जो कुछ भी ज्ञात है वह केवल घोषणा है।

घोषणा के अनुसार, यह शोध लगभग एक वर्ष तक चला और इसमें तीन चरण शामिल हैं:

  • rlottie का फ़ज़िंग (Fuzzing)। फ़ज़िंग एक प्रोग्राम में लाखों विकृत फ़ाइलों को स्वचालित रूप से इनपुट करना है ताकि क्रैश का पता लगाया जा सके; यहाँ इसे एक language model द्वारा संचालित किया गया था। इसने कई memory-corruption bugs पाए, जो घोषणा के अनुसार, iOS, Android और डेस्कटॉप पर Telegram क्लाइंट को प्रभावित करते हैं।
  • सर्वर-साइड सत्यापन को बायपास करना। Telegram सर्वर स्टिकर की जाँच करता है और संदिग्ध फ़ाइलों को पास नहीं होने देता — इसी पर खतरे का मॉडल आधारित था। घोषणा में बताया गया है कि स्टिकर कैसे डिलीवर और सत्यापित किए जाते हैं, इसमें अलग-अलग तार्किक त्रुटियाँ हैं, और सर्वर और क्लाइंट में सुरक्षा उपायों को बायपास करने के कई तरीके हैं।
  • iOS के खिलाफ श्रृंखला। यह सब एक exploit में इकट्ठा किया गया है जो Telegram for iOS में code execution करता है; लेखक exploit की सीमाओं पर अलग से चर्चा करते हैं।

घोषणा में पुनरुत्पादन के चरण नहीं हैं, और इस लेख में भी वे नहीं हैं।

स्टिकर बिना क्लिक किए खतरनाक क्यों है

एक एनिमेटेड स्टिकर एक TGS फ़ाइल है: एक gzip संपीड़ित JSON Lottie प्रारूप में, जहाँ एनीमेशन को वेक्टर आउटलाइन द्वारा वर्णित किया गया है। क्लाइंट इसे एक नेटिव लाइब्रेरी का उपयोग करके स्वयं rasterizes करता है, जैसे ही स्टिकर दृश्यमान क्षेत्र में आता है: चैट में, संवाद के पूर्वावलोकन में, प्रतिक्रियाओं में, कस्टम स्टेटस इमोजी में। इसलिए, एक renderer में त्रुटि उपयोगकर्ता की भागीदारी के बिना एक हमले की सतह है, और प्रेषक और कमजोर कोड के बीच एकमात्र फ़िल्टर Telegram सर्वर है।

यहाँ से वह प्रश्न उठता है जिसके साथ घोषणा समाप्त होती है: यदि क्लाइंट की सुरक्षा इस बात पर निर्भर करती है कि प्रदाता यह तय करता है कि कौन सी फ़ाइल कमजोर कोड तक पहुँचेगी, तो यह क्या है — एक सुरक्षा उपाय, एक आर्किटेक्चरल जोखिम, या backdoor के करीब कुछ।

ZDI का मामला

यह रिपोर्ट उस विवाद को जारी रखती है जो वसंत में शुरू हुआ था। 26 मार्च को, Zero Day Initiative ने Telegram को rlottie में एक त्रुटि के बारे में सूचित किया, जो आवंटित बफर की शुरुआत से पहले डेटा लिखने और code execution की अनुमति देती है। 31 मार्च को, Telegram ने जवाब दिया कि भेद्यता को सर्वर पर सत्यापन द्वारा बंद कर दिया गया है, 14 अप्रैल को उसने code execution तक की पूरी श्रृंखला का अनुरोध किया। 15 अक्टूबर को, ZDI ने बुलेटिन ZDI-26-757 को एक बिना पैच वाली भेद्यता के रूप में प्रकाशित किया, जिसका CVSS स्कोर 7.0 था; वसंत में, जब इस मामले के बारे में पहली बार लिखा गया था, तो 9.8 का स्कोर बताया गया था (SecurityAffairs, CyberInsider)। अज़ीज़ की रिपोर्ट Telegram के तर्क का खंडन करने के लिए बनाई गई है: वह कोड, जिसे अप्राप्य माना गया था, प्राप्य निकला।

Telegram के लिए rlottie स्वयं कोई नया लक्ष्य नहीं है। 2020 में, Shielder ने इसमें 13 त्रुटियाँ पाईं, जिनमें CVE-2021-31322 भी शामिल थी; इन्हें 2020 की शरद ऋतु में संस्करण 7.1 में ठीक किया गया था, और विश्लेषण फरवरी 2021 में जारी किया गया था। सितंबर 2026 में, एक स्टिकर चैट में घूम रहा था जो वेब को छोड़कर सभी क्लाइंट पर एप्लिकेशन को क्रैश कर देता था।

Telegram कोड में क्या बदलाव करता है

Telegram Rust में अपना स्वयं का Lottie renderer लिख रहा है — tlottie। इसके विवरण में सीधे कहा गया है कि JSON एनीमेशन को एक अविश्वसनीय इनपुट माना जाता है, और इसकी तुलना 2019 के rlottie फोर्क से की जाती है, जिसका उपयोग क्लाइंट करते हैं।

Telegram for Android 13.1.1 के स्रोत कोड में नेटिव rlottie अब नहीं है — इसके बजाय संकलित tlottie है; Android संस्करण 12.10.0 तक इस पर चला गया था, डेस्कटॉप — सितंबर में।

Telegram for iOS में tlottie को 11 सितंबर को जोड़ा गया — rlottie के साथ दूसरे इंजन के रूप में, न कि उसके स्थान पर। स्टिकर, इमोजी, प्रतिक्रियाएँ और स्टिकर कीबोर्ड प्रत्येक रेंडरिंग पर इंजन का चयन करते हैं, और सर्वर उन्हें ios_killswitch_disable_tlottie फ़्लैग के साथ rlottie पर वापस कर सकता है। इसके अलावा, 50 अन्य स्थानों पर — द्वितीयक इंटरफ़ेस, लॉगिन से पहले की स्क्रीन, "शेयर" विंडो, मीडिया एडिटर से निर्यात — हमेशा rlottie ही रेंडर करता है। क्या ये बदलाव अज़ीज़ की खोजों से संबंधित हैं, यह कोड से स्पष्ट नहीं है; घोषणा में कहा गया है कि कमजोर रेंडरिंग कोड आधिकारिक क्लाइंट में बना हुआ है।