
यह रिपॉजिटरी इंस्टाग्राम में एक सर्वर-साइड प्राधिकरण बायपास का खुलासा करती है, जिसने निजी टाइमलाइनों तक अप्रमाणित पहुंच की अनुमति दी; सबूतों के आधार पर ऐसा प्रतीत होता है कि मेटा ने औपचारिक स्वीकृति के बिना इसे चुपचाप पैच कर दिया।
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 |
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 को रिकॉर्ड किया गया
The vulnerability was silently patched on October 16, 2025. These screenshots show the same account (jatin.py) before and after the fix:
भेद्यता को 16 अक्टूबर, 2025 को चुपचाप पैच कर दिया गया था। ये स्क्रीनशॉट फिक्स से पहले और बाद में एक ही खाता (jatin.py) दिखाते हैं:
Before (Exploitable): Private posts visible in polaris_timeline_connection.edges
पहले (शोषणीय): polaris_timeline_connection.edges में निजी पोस्ट दिखाई दे रही हैं

After (Oct 16): Same request returns empty edges array
बाद में (16 अक्टूबर): वही अनुरोध खाली edges ऐरे लौटाता है

Source: After screenshot from Video 4 at 0:44 स्रोत: वीडियो 4 से 0:44 पर बाद का स्क्रीनशॉट
📹 Watch the exploitation in action: 📹 शोषण को क्रिया में देखें:
Video 3 (third-party account test) has restricted access to protect privacy — find the link in videos.txt and request access, or reach out via email.
वीडियो 3 (तृतीय-पक्ष खाता परीक्षण) की गोपनीयता की रक्षा के लिए प्रतिबंधित पहुंच है — videos.txt में लिंक खोजें और पहुंच का अनुरोध करें, या ईमेल के माध्यम से संपर्क करें।
All claims in this disclosure are backed by preserved evidence: इस खुलासे में सभी दावे संरक्षित साक्ष्य द्वारा समर्थित हैं:
| Evidence Type | Location |
| File | Description |
All evidence in this repository was committed to GitHub during the discovery and reporting process (October 12-17, 2025), providing timestamped, immutable records via Git history. इस रिपॉजिटरी में सभी साक्ष्य खोज और रिपोर्टिंग प्रक्रिया (12-17 अक्टूबर, 2025) के दौरान GitHub पर कमिट किए गए थे, जो Git इतिहास के माध्यम से टाइमस्टैम्प्ड, अपरिवर्तनीय रिकॉर्ड प्रदान करते हैं।
For video evidence specifically:
videos.txtvideos.txt में दर्ज हैThis ensures the evidence cannot be fabricated or modified after the fact. यह सुनिश्चित करता है कि साक्ष्य को बाद में गढ़ा या संशोधित नहीं किया जा सकता।
For inquiries regarding this disclosure, please reach out: इस खुलासे के संबंध में पूछताछ के लिए, कृपया संपर्क करें:
This repository is published for educational and research purposes only. See LICENSE.
यह रिपॉजिटरी केवल शैक्षिक और अनुसंधान उद्देश्यों के लिए प्रकाशित की गई है। LICENSE देखें।
| 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" |
| स्वीकार किया कि समस्या मौजूद हो सकती थी | "यह तथ्य कि एक अपुनरुत्पादनीय समस्या को ठीक किया गया था, इस तथ्य को नहीं बदलता कि यह उस समय पुनरुत्पादनीय नहीं था" |
| साक्ष्य प्रकार | स्थान |
|---|
| Full Timeline | TIMELINE.md |
| पूर्ण समयरेखा | TIMELINE.md |
| Meta Communications (PDF) | official_communication/pdfs/ |
| मेटा संचार (PDF) | official_communication/pdfs/ |
| Meta Communications (HTML) | official_communication/ |
| मेटा संचार (HTML) | official_communication/ |
| Video Evidence (with SHA256) | videos.txt |
| वीडियो साक्ष्य (SHA256 के साथ) | videos.txt |
| फ़ाइल | विवरण |
|---|
exploited_headers_links_1.txt | CDN links extracted from jatin.py - direct URLs to private posts |
exploited_headers_links_1.txt | jatin.py से निकाले गए CDN लिंक - निजी पोस्टों के सीधे URL |
exploited_headers_links_2.txt | CDN links extracted from its_prathambanga - third-party account |
exploited_headers_links_2.txt | its_prathambanga से निकाले गए CDN लिंक - तृतीय-पक्ष खाता |
unexploted_headers.txt | Headers from non-vulnerable accounts (e.g., 2fa_2fa) for comparison |
unexploted_headers.txt | गैर-असुरक्षित खातों (जैसे, 2fa_2fa) से तुलना के लिए हेडर |
sample_extracted_json_snippet_exposing_post_data.json | Raw JSON showing polaris_timeline_connection with private post data |
sample_extracted_json_snippet_exposing_post_data.json | निजी पोस्ट डेटा के साथ polaris_timeline_connection दिखाने वाला कच्चा JSON |
sample_empty_json_snippet_exposing_no_posts.json | Raw JSON from non-vulnerable account - empty edges array |
sample_empty_json_snippet_exposing_no_posts.json | गैर-असुरक्षित खाते से कच्चा JSON - खाली edges ऐरे |
sample_html_response_1.html | Complete HTML response containing embedded private data |
sample_html_response_1.html | एम्बेडेड निजी डेटा वाला पूर्ण HTML प्रतिक्रिया |