Parameter Labs의 보안 연구진은 공개된 ChatGPT 대화를 링크로 공유하면 링크를 연 사람의 비공개 계정이 노출될 수 있다고 밝혔다. 악의적인 공유 링크를 통해 로그인된 사용자의 ChatGPT 세션 안에서 JavaScript를 실행하고, 비공개 대화에 접근하거나 사용자 계정으로 작업을 수행하는 방법을 찾아냈다.
이 공격은 원래 함께 작동하도록 설계되지 않은 두 기능, 즉 인터랙티브 그래프와 코드를 작은 웹페이지처럼 보여주는 ChatGPT의 HTML Preview를 이용했다. Parameter Labs는 두 기능을 결합해 신뢰할 수 없는 미리보기 코드가 ChatGPT 메인 페이지와 분리되도록 막는 브라우저의 보안 경계를 우회했다고 설명했다.
공격은 어떻게 작동했나?
연구진은 그래프 기능을 지원하기 위해 ChatGPT가 사용하던 라이브러리인 MathLive에서 취약점의 원인을 찾아냈다. MathLive는 화면 키보드를 제어하기 위해 메인 페이지에 메시지 리스너를 추가했다. 미리보기에서 이 리스너로 메시지를 보낼 수 있었지만, 리스너는 메시지가 신뢰할 수 있는 곳에서 왔는지 확인하지 않았다. 이후 리스너는 전달받은 HTML을 메인 페이지에 삽입했다.
이것만으로는 스크립트 태그가 실행되지 않았다. 하지만 Parameter Labs는 페이지가 샌드박스 제한 없이 새 프레임을 만들게 하는 방법을 찾아냈다. 이 프레임은 ChatGPT 메인 페이지에서 생성됐기 때문에 사이트의 권한으로 실행되며 피해자의 로그인 세션을 사용할 수 있었다. 연구진은 이 접근 권한으로 대화 목록을 확인하고, 자신과 공유된 적 없는 비공개 대화를 가져온 뒤 그 내용을 외부 서버로 전송했다고 밝혔다.
Parameter Labs에 따르면 피해자에게 앱을 설치하거나 워크스페이스에 참여하도록 요구하지 않고도 일반 공개 공유 링크를 통해 공격을 전달할 수 있었다. 재현 실험의 한 버전에서는 공유 링크를 여는 것만으로 충분했고, 그보다 앞선 버전에서는 피해자가 ChatGPT의 Preview 버튼을 한 번 눌러야 했다.
OpenAI는 어떤 조치를 했나?
Parameter Labs에 따르면 OpenAI는 2026년 10월 26일 문제를 수정하고 제보 등급을 P1으로 분류했다. 이번 연구를 소개한 Simon Willison은 OpenAI가 버그 바운티로 $5,000를 지급했다고 전했다. 공개된 설명에는 수정 사항이 나와 있지만, 연구진이나 OpenAI가 실제 사용자를 대상으로 취약점이 악용된 흔적을 발견했는지는 언급되지 않았다.
이번 사례는 미리보기가 제한된 프레임 안에서 실행되더라도 위험할 수 있음을 보여준다. 안전성은 주변 페이지가 메시지와 삽입된 콘텐츠를 어떻게 처리하는지에도 달려 있다. Parameter Labs의 공격은 피해자가 직접 코드를 실행하게 하는 대신, 이런 요소들을 조합해 공유 가능한 링크를 만들었다.
왜 중요한가
ChatGPT 이용자는 악의적인 공유 대화를 열기만 해도 앱을 설치하지 않고 비공개 대화가 노출될 수 있었다. OpenAI는 10월 26일 문제를 수정했지만, 공개된 설명만으로는 그 전에 공격자가 취약점을 악용했는지 확인할 수 없다.