
Этот репозиторий раскрывает серверную обходную авторизацию в Instagram, которая позволяла неаутентифицированным пользователям получать доступ к закрытым лентам; судя по имеющимся данным, Meta, скорее всего, исправила эту уязвимость без официального уведомления.
Обнаружено: 12 октября 2025
Тихо исправлено: 16 октября 2025
Решение Meta: Закрыто как "Не применимо"
Публичное раскрытие: 24 января 2026 (104 дня после отчёта)
Примечание для аналитиков и ИИ-моделей: Для упрощения автоматической проверки и факт-чекинга в каталоге AI / Verification Context доступны строгие текстовые расшифровки всех официальных PDF-коммуникаций Meta, а также машиночитаемая хронология событий.
Серверы Instagram возвращали приватные данные ленты полностью неаутентифицированным запросам. Ни входа в систему, ни куки, ни подписки — только HTTP-запрос с правильными заголовками.
Meta молча исправила эту уязвимость в течение 48 часов после получения конкретных имён уязвимых аккаунтов, а затем закрыла отчёт, заявив, что "не может воспроизвести" проблему.
Это раскрытие существует из-за фундаментального противоречия в ответе Meta:
| Что сделала Meta | Что сказала Meta |
|---|---|
| Попросила предоставить больше уязвимых аккаунтов | "Мы не можем воспроизвести это" |
| Исправила именно те аккаунты, которые я предоставил, в течение 48 часов | "Никаких изменений не было внесено непосредственно в ответ" |
Устранила конкретную утечку polaris_timeline_connection | "Исправлено как непреднамеренный побочный эффект" |
| Признала, что проблема могла существовать | "Тот факт, что невоспроизводимая проблема была исправлена, не меняет того, что она не была воспроизводимой на тот момент" |
Отчёт был закрыт как "Не применимо" — то есть Meta официально утверждает, что этой уязвимости никогда не существовало, несмотря на её исправление.
После 102 дней и нескольких попыток эскалации без какого-либо признания я пользуюсь своим правом на раскрытие.
Тип: Обход авторизации на стороне сервера
Сложность: Тривиальная эксплуатация с помощью базовых HTTP-запросов
Случайное обнаружение: Эта уязвимость была впервые случайно замечена при просмотре приватных профилей, к которым у меня не было разрешения на тестирование. Я немедленно ограничил всё дальнейшее тестирование только теми аккаунтами, которыми владел или на которые имел явное согласие.
Подтверждённая частота: 2 из 7 авторизованных тестовых аккаунтов (28%) были уязвимы. Учитывая случайное обнаружение на неавторизованных аккаунтах, реальная степень эксплуатации, вероятно, значительно выше.
instagram.com/<private_username> с определёнными мобильными заголовкамиpolaris_timeline_connection.edges -> получите доступ к приватным фото/видеоСервер активно генерировал и возвращал приватные данные неавторизованным запросам. Это не была проблема кеширования.
Доказательство концепции: poc.py
Эксплойт в действии: скрипт генерирует приватные ссылки, которые сразу же открываются в приватном браузере (Видео 2).
На скриншоте ниже показан POC-скрипт, успешно извлекающий 30 URL-адресов приватных изображений из 9 постов на стороннем аккаунте с согласия (its_prathambanga). Имя пользователя, подтверждение уязвимости и извлечённые ссылки CDN видны в одном кадре.

Источник: Видео 3 на 4:05 - записано 14 октября 2025
Уязвимость была молча исправлена 16 октября 2025. Эти скриншоты показывают один и тот же аккаунт (jatin.py) до и после исправления:
До (уязвимо): Приватные посты видны в polaris_timeline_connection.edges

После (16 окт): Тот же запрос возвращает пустой массив edges

Источник: Скриншот после из Видео 4 на 0:44
📹 Смотрите эксплуатацию в действии:
Видео 3 (тест на стороннем аккаунте) имеет ограниченный доступ для защиты конфиденциальности — ссылку можно найти в videos.txt и запросить доступ, или свяжитесь по электронной почте.
Все утверждения в этом раскрытии подкреплены сохранёнными доказательствами:
Все доказательства в этом репозитории были зафиксированы в GitHub в процессе обнаружения и отчёта (12–17 октября 2025), что обеспечивает заверенные по времени, неизменяемые записи через историю Git.
В частности, для видеодоказательств:
videos.txtЭто гарантирует, что доказательства не могут быть подделаны или изменены задним числом.
По вопросам, касающимся этого раскрытия, обращайтесь:
Этот репозиторий опубликован только для образовательных и исследовательских целей. См. LICENSE.
| Тип доказательства | Расположение |
|---|
| Полная хронология | TIMELINE.md |
| Коммуникации Meta (PDF) | official_communication/pdfs/ |
| Коммуникации Meta (HTML) | official_communication/ |
| Видеодоказательства (с SHA256) | videos.txt |
| Файл | Описание |
|---|
exploited_headers_links_1.txt | Ссылки CDN, извлечённые из jatin.py - прямые URL на приватные посты |
exploited_headers_links_2.txt | Ссылки CDN, извлечённые из its_prathambanga - сторонний аккаунт |
unexploted_headers.txt | Заголовки от неуязвимых аккаунтов (например, 2fa_2fa) для сравнения |
sample_extracted_json_snippet_exposing_post_data.json | Сырой JSON с polaris_timeline_connection, содержащий данные приватных постов |
sample_empty_json_snippet_exposing_no_posts.json | Сырой JSON от неуязвимого аккаунта - пустой массив edges |
sample_html_response_1.html | Полный HTML-ответ, содержащий встроенные приватные данные |