Hacker News보안오늘의 주요

ChatGPT 공유 링크 하나로 계정 탈취 가능한 취약점 발견

원제 We Took over ChatGPT Accounts

140 포인트댓글 62
Key Point

공개 링크 하나만으로 남의 ChatGPT 계정을 완전히 제어할 수 있었던 심각한 보안 결함이며, 샌드박스 · 메시징 · CSP 같은 개별 방어 수단이 어떻게 조합되면 무너지는지 보여주는 사례입니다.

핵심 요약

  • 2026년 10월, 공개 공유된 ChatGPT 대화 링크를 통해 피해자의 인증된 세션에서 임의의 JavaScript를 실행할 수 있는 취약점이 발견됐다.
  • 그래프 기능이 MathLive 라이브러리를 로드할 때 메인 페이지에 메시지 리스너를 설치했고, HTML Preview에서 postMessage API를 통해 출처 검증 없이 신뢰되지 않은 HTML을 포함한 메시지를 보낼 수 있었다.
  • MathLive가 수신한 메시지의 발신자를 확인하지 않고, HTML을 키보드 레이아웃으로 받아들였으며, 이를 ChatGPT 메인 페이지에 innerHTML로 삽입했다.
  • srcdoc 속성을 가진 iframe을 통해 샌드박스 없이 생성된 새 문서는 chatgpt.com 출처를 상속받아 JavaScript 실행이 가능했다.
  • CSP 우회를 위해 YouTube의 oEmbed 엔드포인트의 JSONP 콜백 검증 오류를 이용해 공격자 제어 JavaScript를 실행했다.
  • 피해자의 개인 대화 목록을 열거하고, 공유받지 않은 비공개 대화의 내용을 검색한 후, 외부 서버로 데이터를 전송할 수 있었다.
  • 공격자는 악의적인 대화를 만들어 ChatGPT의 일반 공유 기능으로 배포한 후 피해자에게 링크를 보내면, 피해자가 링크를 열기만 해도 공격이 작동했다.
  • 피해자는 앱 설치, 개발자 도구 열기, 코드 붙여넣기 등 어떤 추가 조치도 할 필요가 없었다.
  • OpenAI는 10월 26일 MathLive 메시지 검증 실패, 신뢰되지 않은 HTML이 메인 페이지에 도달하는 점, 동적 생성 문서의 샌드박스 부재, 출처 검증 없는 교차 윈도우 메시징을 근본 원인으로 삼았다.
  • 개별 기능은 각각 안전했으나, 공개 공유 · Preview · MathLive · 프레임 생성 · CSP의 조합에서만 취약점이 나타났다.
  • OpenAI는 문제를 P1 심각도로 분류하고 두 버전의 웹 프론트엔드를 업데이트해 10월 26일 완전히 해결했으며, 총 5,000달러의 버그 바운티를 지급했다.
AI 요약 안내

AI가 한국어로 정리한 내용입니다. 정확한 정보는 원문을 확인해 주세요.

요약 원칙 ↗