보안팀 Parameter가 이미 수정된 ChatGPT 공격 체인을 공개했다. 공격자가 평범한 대화 공유 링크를 보내고 피해자가 로그인 상태에서 이를 열면, 공격자의 JavaScript가 chatgpt.com 세션 안에서 실행된다. 연구진은 실험에서 피해자의 최근 대화 목록을 불러오고, 한 번도 공유하지 않은 비공개 대화를 읽었으며, 소량의 데이터를 외부 서버로 전송했다.
앱 설치도, 서드파티 플러그인 연결도, 개발자 도구 실행도 필요 없었다. OpenAI는 10월 26일 수정을 확인했고 이 취약점을 P1으로 분류했다.
잘 격리된 두 기능이 키보드 하나로 이어졌다
ChatGPT의 HTML 미리보기는 별도의 격리 도메인에서 실행되며, 설계상 메인 페이지에 접근할 수 없다. 문제는 대화 속 인터랙티브 그래픽에 있었다. 이 그래픽은 수식 입력 라이브러리 MathLive를 불러오는데, 이 라이브러리가 메인 페이지에 가상 키보드 메시지를 받는 리스너를 설치한다.
Parameter의 보고서는 결함을 여러 층으로 나눠 설명한다.
- 리스너가 메시지의 출처를 검증하지 않아, 격리 도메인에서 실행되는 미리보기도 메시지를 보낼 수 있다
- 메시지로 키보드 레이아웃을 바꿀 수 있고, 레이아웃에는 HTML을 넣을 수 있으며, 이것이 결국 메인 페이지에 기록된다
- "정화"를 맡은 함수는 실제로는 문자열을 신뢰할 수 있는 것으로 표시할 뿐이다
- 새로 삽입된 iframe에는 sandbox 속성이 없어 chatgpt.com의 신원을 그대로 물려받는다
- 콘텐츠 보안 정책(CSP)이 YouTube 스크립트를 허용하고 있었고, 연구진은 그 콜백 인터페이스 하나를 이용해 우회했다
초기 버전에서는 피해자가 먼저 연구진의 ChatGPT 앱을 연결해야 했다. 이후 연구진은 그래픽과 악성 미리보기를 같은 공개 대화에 넣어, 공유 기능만으로 공격을 전달할 수 있게 했다. 보고서는 일부 요청 세부 내용도 공개했지만 여기서는 옮기지 않는다.
공격 효과로 보고서가 실증한 것은 대화 읽기와 데이터 외부 전송이다. "피해자를 대신해 어떤 작업이든 수행할 수 있다"는 표현은 연구진이 프런트엔드 인증 인터페이스에서 추론한 것이며, 항목별로 시연한 것은 아니다.
8일 만에 끝난 타임라인
보고서는 매우 상세하다. 10월 13일 MathLive 경로를 확인했고, 16일 계정 간·워크스페이스 간 재현에 성공했으며, 18일 OpenAI의 버그 바운티 프로그램에 제출했다. OpenAI는 21일 이를 재현해 등급을 P2에서 P1으로 올렸고, 22일에는 프런트엔드 한 곳은 수정됐고 다른 한 곳은 업데이트 중이라고 알렸으며, 23일에는 먼저 콘텐츠 보안 정책을 조정해 일부 경로를 차단했다.
ChatGPT 웹은 프런트엔드 두 버전이 동시에 운영되고 있어서, 수정도 두 단계로 나뉘어 진행됐다.
계정 탈취는 처음이 아니다
공유, 플러그인, 캐시. ChatGPT에서 과거에 나온 계정 탈취형 취약점은 대부분 주요 흐름의 가장자리에서 발생했다. 2023년 연구자 Nagli는 웹 캐시 디셉션으로 액세스 토큰을 확보했는데, 이 역시 피해자가 링크를 한 번 클릭하는 것만으로 충분했다. 2024년에는 Salt Labs가 플러그인 인증 흐름의 리디렉션 문제를 공개했다. 이번에는 진입점이 콘텐츠 렌더링용 서드파티 라이브러리로 바뀌었다.
MathLive 자체도 처음 문제가 된 것이 아니다. 미국 국가 취약점 데이터베이스에는 이 라이브러리의 크로스 사이트 스크립팅 취약점 CVE-2025-29049가 등록돼 있으며, 0.103.0 및 이전 버전이 영향을 받는다. 해당 기록에는 가상 키보드 메시지에 대한 언급이 없어, 둘 사이에 직접적인 관련이 있는지는 알 수 없다.
일반 사용자가 지금 해야 할 일은 없다. 보고서는 이 경로가 실제로 악용됐는지 언급하지 않았고, OpenAI도 이 건에 대해 별도 공지를 내지 않았다. 피해자가 있었는지는 확인하지 못했다. 다만 낯선 사람이 보낸 ChatGPT 공유 링크를 다른 웹 링크와 똑같이 대하는 습관은 유지할 만하다.
보고서가 마지막으로 개발자에게 제시한 권고는 소박하다. 창 간 메시지는 출처와 발신 창을 함께 검증하고, 설정 항목에 원시 HTML을 담지 않으며, 콘텐츠 보안 정책은 예비 방어선으로만 여기라는 것이다.
참고 출처: CocoLoop, Parameter 보안 연구 보고서, 미국 국가 취약점 데이터베이스. 수정 진행 상황과 포상금은 연구팀이 공개한 내용을 따랐으며, OpenAI의 별도 공지는 없다.