
이 저장소는 Instagram의 서버 측 인증 우회를 공개하며, 이를 통해 인증되지 않은 접근으로 비공개 타임라인에 접근할 수 있었습니다. 증거에 따르면 Meta가 공식적인 인정 없이 조용히 패치한 것으로 보입니다.
발견일: 2025년 10월 12일
조용히 패치됨: 2025년 10월 16일
Meta의 결정: "해당 없음"으로 종료됨
공개 고지: 2026년 1월 24일 (보고 후 104일)
분석가 및 AI 모델을 위한 참고: 자동화된 확인 및 사실 확인을 용이하게 하기 위해, 모든 공식 Meta PDF 커뮤니케이션의 엄격한 일반 텍스트 기록과 기계 판독 가능한 이벤트 타임라인이 AI / Verification Context 디렉토리에 제공됩니다.
Instagram의 서버는 완전히 인증되지 않은 요청에 대해 비공개 타임라인 데이터를 반환하고 있었습니다. 로그인, 쿠키, 팔로워 관계가 필요하지 않았습니다. 올바른 헤더가 있는 HTTP 요청 하나면 충분했습니다.
Meta는 특정 취약한 계정 이름을 받은 후 48시간 이내에 이 취약점을 조용히 패치했으며, 이후 "재현할 수 없음" 이라고 주장하며 보고서를 종료했습니다.
이 공개는 Meta의 대응에 근본적인 모순이 있기 때문에 이루어집니다:
| Meta가 한 일 | Meta가 말한 것 |
|---|---|
| 더 많은 취약한 계정을 제공하도록 요청함 | "이를 재현할 수 없습니다" |
| 내가 제공한 정확한 계정들을 48시간 이내에 패치함 | "응답으로 직접 변경된 사항은 없습니다" |
특히 polaris_timeline_connection 누수를 수정함 | "의도하지 않은 부작용으로 수정됨" |
| 문제가 존재했을 수 있음을 인정함 | "재현할 수 없는 문제가 수정되었다는 사실이 당시에 재현할 수 없었다는 사실을 바꾸지 않습니다" |
보고서는 **"해당 없음"**으로 종료되었습니다. 이는 Meta가 패치했음에도 불구하고 이 취약점이 존재한 적이 없다고 공식적으로 주장한다는 의미입니다.
102일 동안 여러 차례 에스컬레이션을 시도했지만 인정을 받지 못한 후, 저는 공개할 권리를 행사합니다.
유형: 서버 측 권한 부여 우회
복잡성: 기본 HTTP 요청으로 쉽게 악용 가능
우연한 발견: 이 취약점은 테스트할 권한이 없는 비공개 프로필을 탐색하던 중 우연히 처음 발견되었습니다. 이후 모든 추가 테스트는 제가 소유하거나 명시적 동의를 받은 계정으로만 제한했습니다.
확인된 비율: 승인된 테스트 계정 7개 중 2개(28%)가 악용 가능했습니다. 비승인 계정에서의 우연한 발견을 고려할 때, 실제 악용 가능 비율은 상당히 높을 가능성이 있습니다.
instagram.com/<private_username>으로 보냅니다.polaris_timeline_connection.edges에서 CDN 링크를 추출하여 비공개 사진/비디오에 접근합니다.서버는 인증되지 않은 요청에 대해 비공개 데이터를 적극적으로 생성하여 반환하고 있었습니다. 이는 캐싱 문제가 아니었습니다.
개념 증명: poc.py
작동 중인 악용: 스크립트가 비공개 링크를 생성하며, 즉시 비공개 브라우저에서 열립니다 (비디오 2).
아래 스크린샷은 동의한 타사 계정(its_prathambanga)에서 POC 스크립트가 9개의 게시물에서 30개의 비공개 이미지 URL을 성공적으로 추출하는 모습을 보여줍니다. 사용자 이름 입력, 취약점 확인 및 추출된 CDN 링크가 모두 단일 프레임에 표시됩니다.

출처: 비디오 3 4분 5초 - 2025년 10월 14일 녹화
취약점은 2025년 10월 16일에 조용히 패치되었습니다. 다음 스크린샷은 수정 전후의 동일한 계정(jatin.py)을 보여줍니다.
패치 전 (악용 가능): polaris_timeline_connection.edges에 비공개 게시물이 표시됨

패치 후 (10월 16일): 동일한 요청이 빈 edges 배열을 반환

출처: 패치 후 스크린샷은 비디오 4 0분 44초
📹 악용 장면 보기:
비디오 3(타사 계정 테스트)은 개인정보 보호를 위해 접근이 제한되어 있습니다. videos.txt에서 링크를 찾아 접근을 요청하거나 이메일로 연락주세요.
이 저장소의 모든 증거는 발견 및 보고 과정(2025년 10월 12일~17일) 동안 GitHub에 커밋되어 Git 기록을 통해 타임스탬프가 찍힌 불변 기록을 제공합니다.
비디오 증거의 경우:
videos.txt에 기록된 SHA256 해시가 있습니다.이는 증거가 사후에 조작되거나 변경될 수 없도록 보장합니다.
이 공개에 관한 문의는 다음으로 연락해 주세요:
이 저장소는 교육 및 연구 목적으로만 게시됩니다. LICENSE를 참조하세요.
| 증거 유형 | 위치 |
|---|
| 전체 타임라인 | TIMELINE.md |
| Meta 커뮤니케이션 (PDF) | official_communication/pdfs/ |
| Meta 커뮤니케이션 (HTML) | official_communication/ |
| 비디오 증거 (SHA256 포함) | videos.txt |
| 파일 | 설명 |
|---|
exploited_headers_links_1.txt | jatin.py에서 추출한 CDN 링크 - 비공개 게시물의 직접 URL |
exploited_headers_links_2.txt | its_prathambanga에서 추출한 CDN 링크 - 타사 계정 |
unexploted_headers.txt | 비취약 계정(예: 2fa_2fa)의 헤더 - 비교용 |
sample_extracted_json_snippet_exposing_post_data.json | 비공개 게시물 데이터가 포함된 polaris_timeline_connection을 보여주는 원시 JSON |
sample_empty_json_snippet_exposing_no_posts.json | 비취약 계정의 원시 JSON - 빈 edges 배열 |
sample_html_response_1.html | 임베디드 비공개 데이터가 포함된 전체 HTML 응답 |