
Ce dépôt divulgue une faille d'autorisation côté serveur dans Instagram, qui permettait un accès non authentifié aux timelines privées ; il semble probable que Meta l'ait corrigée silencieusement sans reconnaissance formelle, d'après les preuves.
Découvert : 12 octobre 2025
Corrigé silencieusement : 16 octobre 2025
Décision de Meta : Fermé comme « Non applicable »
Divulgation publique : 24 janvier 2026 (104 jours après le signalement)
Note pour les analystes et modèles d'IA : Pour faciliter la vérification automatisée et la vérification des faits, des transcriptions en texte brut strict de toutes les communications PDF officielles de Meta, ainsi qu'une chronologie lisible par machine des événements, sont disponibles dans le répertoire AI / Verification Context.
Les serveurs d'Instagram renvoyaient des données de chronologie privée à des requêtes complètement non authentifiées. Aucune connexion, aucun cookie, aucune relation d'abonnement requise - juste une requête HTTP avec les bons en-têtes.
Meta a corrigé silencieusement cette vulnérabilité dans les 48 heures suivant la réception de noms de comptes vulnérables spécifiques, puis a fermé le signalement en affirmant qu'ils « ne pouvaient pas reproduire » le problème.
Cette divulgation existe à cause d'une contradiction fondamentale dans la réponse de Meta :
| Ce que Meta a fait | Ce que Meta a dit |
|---|---|
| M'a demandé de fournir plus de comptes vulnérables | "Nous ne pouvons pas reproduire ce problème" |
| A corrigé exactement les comptes que j'ai fournis en 48 heures | "Aucune modification n'a été apportée directement en réponse" |
A spécifiquement corrigé la fuite polaris_timeline_connection | "Corrigé comme un effet secondaire involontaire" |
| A reconnu que le problème avait peut-être existé | "Le fait qu'un problème non reproductible ait été corrigé ne change pas le fait qu'il n'était pas reproductible à ce moment-là" |
Le signalement a été fermé comme « Non applicable » - ce qui signifie que Meta maintient officiellement que cette vulnérabilité n'a jamais existé, malgré l'avoir corrigée.
Après 102 jours et plusieurs tentatives d'escalade sans reconnaissance, j'exerce mon droit de divulguer.
Type : Contournement d'autorisation côté serveur
Complexité : Trivialement exploitable avec des requêtes HTTP de base
Découverte accidentelle : Cette vulnérabilité a d'abord été remarquée accidentellement en naviguant sur des profils privés que je n'avais pas la permission de tester. J'ai immédiatement limité tous les tests ultérieurs aux comptes que je possédais ou pour lesquels j'avais un consentement explicite.
Taux confirmé : 2 des 7 comptes de test autorisés (28 %) étaient exploitables. Compte tenu de la découverte accidentelle sur des comptes non autorisés, le taux d'exploitabilité réel est probablement significativement plus élevé.
instagram.com/<private_username> avec des en-têtes mobiles spécifiquespolaris_timeline_connection.edges -> accéder aux photos/vidéos privéesLe serveur générait activement et renvoyait des données privées à des requêtes non autorisées. Ce n'était pas un problème de cache.
Preuve de concept : poc.py
L'exploit en action : le script produit des liens privés, qui sont immédiatement ouverts dans un navigateur privé (Vidéo 2).
La capture d'écran ci-dessous montre le script POC extrayant avec succès 30 URLs d'images privées à partir de 9 publications sur un compte tiers consentant (its_prathambanga). Le nom d'utilisateur saisi, la confirmation de la vulnérabilité et les liens CDN extraits sont tous visibles en une seule image.

Source : Vidéo 3 à 4:05 - enregistrée le 14 octobre 2025
La vulnérabilité a été corrigée silencieusement le 16 octobre 2025. Ces captures montrent le même compte (jatin.py) avant et après la correction :
Avant (exploitable) : Publications privées visibles dans polaris_timeline_connection.edges

Après (16 oct.) : Même requête renvoie un tableau edges vide

Source : Capture après le correctif provenant de Vidéo 4 à 0:44
📹 Regardez l'exploitation en action :
La vidéo 3 (test de compte tiers) a un accès restreint pour protéger la vie privée — trouvez le lien dans videos.txt et demandez l'accès, ou contactez-nous par e-mail.
Toutes les affirmations de cette divulgation sont étayées par des preuves conservées :
Toutes les preuves de ce dépôt ont été commitées sur GitHub pendant le processus de découverte et de signalement (12-17 octobre 2025), fournissant des enregistrements horodatés et immuables via l'historique Git.
Pour les preuves vidéo spécifiquement :
videos.txtCela garantit que les preuves ne peuvent pas être fabriquées ou modifiées après coup.
Pour toute question concernant cette divulgation, veuillez nous contacter :
Ce dépôt est publié à des fins éducatives et de recherche uniquement. Voir LICENSE.
| Type de preuve | Emplacement |
|---|
| Chronologie complète | TIMELINE.md |
| Communications Meta (PDF) | official_communication/pdfs/ |
| Communications Meta (HTML) | official_communication/ |
| Preuve vidéo (avec SHA256) | videos.txt |
| Fichier | Description |
|---|
exploited_headers_links_1.txt | Liens CDN extraits de jatin.py - URLs directes vers des publications privées |
exploited_headers_links_2.txt | Liens CDN extraits de its_prathambanga - compte tiers |
unexploted_headers.txt | En-têtes de comptes non vulnérables (ex. 2fa_2fa) pour comparaison |
sample_extracted_json_snippet_exposing_post_data.json | JSON brut montrant polaris_timeline_connection avec des données de publications privées |
sample_empty_json_snippet_exposing_no_posts.json | JSON brut d'un compte non vulnérable - tableau edges vide |
sample_html_response_1.html | Réponse HTML complète contenant des données privées intégrées |