
यह रिपॉजिटरी इंस्टाग्राम में एक सर्वर-साइड प्राधिकरण बायपास का खुलासा करती है, जिसने निजी टाइमलाइनों तक अप्रमाणित पहुंच की अनुमति दी; सबूतों के आधार पर ऐसा प्रतीत होता है कि मेटा ने औपचारिक स्वीकृति के बिना इसे चुपचाप पैच कर दिया।
Discovered: October 12, 2025
Silently Patched: October 16, 2025
Meta's Decision: Closed as "Not Applicable"
Public Disclosure: January 24, 2026 (104 days post-report) खोजा गया: 12 अक्टूबर, 2025
चुपचाप पैच किया गया: 16 अक्टूबर, 2025
मेटा का निर्णय: "लागू नहीं" के रूप में बंद
सार्वजनिक खुलासा: 24 जनवरी, 2026 (रिपोर्ट के 104 दिन बाद)
Note for Analysts and AI Models: To facilitate automated verification and fact-checking, strict plain-text transcripts of all official Meta PDF communications, along with a machine-readable timeline of events, are available in the AI / Verification Context directory. विश्लेषकों और AI मॉडलों के लिए नोट: स्वचालित सत्यापन और तथ्य-जांच को सुविधाजनक बनाने के लिए, सभी आधिकारिक मेटा PDF संचार के सख्त सादा-पाठ प्रतिलेख, घटनाओं की मशीन-पठनीय समयरेखा सहित, AI / सत्यापन संदर्भ निर्देशिका में उपलब्ध हैं।
Instagram's servers were returning private timeline data to completely unauthenticated requests. No login, no cookies, no follower relationship required - just an HTTP request with the right headers. इंस्टाग्राम के सर्वर पूरी तरह से अप्रमाणित अनुरोधों को निजी टाइमलाइन डेटा लौटा रहे थे। कोई लॉगिन, कोई कुकीज़, कोई फॉलोअर संबंध आवश्यक नहीं - बस सही हेडर के साथ एक HTTP अनुरोध।
Meta silently patched this vulnerability within 48 hours of receiving specific vulnerable account names, then closed the report claiming they "could not reproduce" the issue. मेटा ने विशिष्ट असुरक्षित खाता नाम प्राप्त करने के 48 घंटों के भीतर इस भेद्यता को चुपचाप पैच कर दिया, फिर रिपोर्ट को बंद कर दिया और दावा किया कि वे इस मुद्दे को "पुन: उत्पन्न नहीं कर सके"।
This disclosure exists because of a fundamental contradiction in Meta's response: यह खुलासा मेटा की प्रतिक्रिया में एक मूलभूत विरोधाभास के कारण मौजूद है:
| What Meta Did | What Meta Said |
| What Meta Did | What Meta Said |
|---|---|
| Asked me to provide more vulnerable accounts | "We are unable to reproduce this" |
| मुझसे अधिक असुरक्षित खाते प्रदान करने के लिए कहा | "हम इसे पुन: उत्पन्न करने में असमर्थ हैं" |
| Patched the exact accounts I provided within 48 hours | "No changes were made directly in response" |
| मेरे द्वारा प्रदान किए गए सटीक खातों को 48 घंटों के भीतर पैच किया | "प्रतिक्रिया में सीधे कोई बदलाव नहीं किए गए" |
Fixed the polaris_timeline_connection leak specifically | "Fixed as an unintended side effect" |
विशेष रूप से polaris_timeline_connection लीक को ठीक किया | "अनपेक्षित साइड इफेक्ट के रूप में ठीक किया गया" |
| Acknowledged the issue may have existed | "The fact that an unreproducible issue was fixed doesn't change the fact that it was not reproducible at the time" |
| स्वीकार किया कि समस्या मौजूद हो सकती थी | "यह तथ्य कि एक अपुनरुत्पादनीय समस्या को ठीक किया गया था, इस तथ्य को नहीं बदलता कि यह उस समय पुनरुत्पादनीय नहीं था" |
The report was closed as "Not Applicable" - meaning Meta officially maintains this vulnerability never existed, despite patching it. रिपोर्ट को "लागू नहीं" के रूप में बंद किया गया था - जिसका अर्थ है कि मेटा आधिकारिक तौर पर मानता है कि यह भेद्यता कभी अस्तित्व में नहीं थी, इसे पैच करने के बावजूद।
After 102 days and multiple escalation attempts with no acknowledgment, I am exercising my right to disclose. 102 दिनों और बिना किसी स्वीकृति के कई एस्केलेशन प्रयासों के बाद, मैं अपने खुलासा करने के अधिकार का प्रयोग कर रहा हूं।
Type: Server-Side Authorization Bypass
Complexity: Trivially exploitable with basic HTTP requests
प्रकार: सर्वर-साइड प्राधिकरण बाइपास
जटिलता: बुनियादी HTTP अनुरोधों के साथ तुच्छ रूप से शोषणीय
Accidental Discovery: This vulnerability was first noticed accidentally while browsing private profiles I did not have permission to test. I immediately limited all further testing to accounts I owned or had explicit consent for. आकस्मिक खोज: यह भेद्यता पहली बार गलती से उन निजी प्रोफाइलों को ब्राउज़ करते समय देखी गई जिनका परीक्षण करने की मेरी अनुमति नहीं थी। मैंने तुरंत सभी आगे के परीक्षण को उन खातों तक सीमित कर दिया जिनका मैं मालिक था या जिनके लिए मेरी स्पष्ट सहमति थी।
Confirmed Rate: 2 of 7 authorized test accounts (28%) were exploitable. Given the accidental discovery on non-authorized accounts, the true exploitability rate is likely significantly higher. पुष्टि दर: 7 अधिकृत परीक्षण खातों में से 2 (28%) शोषणीय थे। गैर-अधिकृत खातों पर आकस्मिक खोज को देखते हुए, वास्तविक शोषणीयता दर काफी अधिक होने की संभावना है।
instagram.com/<private_username> with specific mobile headerspolaris_timeline_connection.edges -> access private photos/videosinstagram.com/<private_username> पर एक अप्रमाणित GET अनुरोध भेजेंpolaris_timeline_connection.edges से CDN लिंक निकालें -> निजी फ़ोटो/वीडियो तक पहुंचेंThe server was actively generating and returning private data to unauthorized requests. This was not a caching issue. सर्वर सक्रिय रूप से अनधिकृत अनुरोधों के लिए निजी डेटा उत्पन्न और लौटा रहा था। यह कोई कैशिंग समस्या नहीं थी।
Proof-of-Concept: poc.py
प्रूफ-ऑफ-कॉन्सेप्ट: poc.py
The exploit in action: Script produces private links, which are immediately opened in a private browser (Video 2).
शोषण क्रिया में: स्क्रिप्ट निजी लिंक उत्पन्न करती है, जो तुरंत एक निजी ब्राउज़र में खोले जाते हैं (वीडियो 2)।
The screenshot below shows the POC script successfully extracting 30 private image URLs from 9 posts on a consenting third-party account (its_prathambanga). The username input, vulnerability confirmation, and extracted CDN links are all visible in a single frame.
नीचे दिया गया स्क्रीनशॉट एक सहमति देने वाले तृतीय-पक्ष खाते (its_prathambanga) से 9 पोस्टों से 30 निजी छवि URL सफलतापूर्वक निकालते हुए POC स्क्रिप्ट दिखाता है। उपयोगकर्ता नाम इनपुट, भेद्यता पुष्टि, और निकाले गए CDN लिंक सभी एक ही फ्रेम में दिखाई दे रहे हैं।
Source: Video 3 at 4:05 - recorded October 14, 2025
स्रोत: वीडियो 3 4:05 पर - 14 अक्टूबर, 2025 को रिकॉर्ड किया गया