체크포인트 리서치가 2026년 6월 말 OpenAI에 신고하고 9월 8일 공개한 보고서의 핵심은 간단하다. 샌드박스가 외부 인터넷 접속과 컨테이너 간 직접 통신을 막더라도, 모든 샌드박스가 같은 쓰기 가능한 내부 서비스에 접근할 수 있다면 사용자 간 격리는 무너질 수 있다는 것이다. 보도와 연구진 설명에 따르면 해당 통신 채널은 이후 폐쇄됐다.
5
6
패키지 메타데이터가 ‘공유 메모장’이 된 이유
보도된 ChatGPT 코드 실행 컨테이너는 서로, 그리고 공용 인터넷과 분리되도록 설계돼 있었다. 하지만 이 컨테이너들은 패키지 배포에 쓰이는 공유 내부 JFrog Artifactory 서비스에는 접근할 수 있었다.
6
문제는 Artifactory에 접근할 수 있었다는 사실만이 아니었다. 체크포인트에 따르면 Artifactory의 Item Management API는 캐시된 항목에 연결된 변경 가능한 메타데이터를 컨테이너가 읽고 수정하게 했다. 이 메타데이터가 계정별로 분리되지 않으면서, 계정 간 공유 상태가 만들어졌다.
공격 흐름은 다음과 같았다.
- 공격자가 제어하는 세션이 공유 메타데이터에 지시문이나 데이터를 기록한다.
- 피해자의 코드 실행 환경이 자기 대화를 처리하는 중 그 상태를 읽는다.
- 피해자 환경은 실행 결과를 같은 위치에 다시 기록한다.
- 공격자 환경은 그 결과를 가져간다.
즉, 내부 패키지 서비스가 원래 분리돼야 할 계정들 사이에서 명령을 전달하고 결과를 돌려받는 양방향 ‘공유 클립보드’, 다시 말해 비밀 명령·제어 및 데이터 반환 경로가 된 셈이다.
6
19
프롬프트 인젝션이 데이터 유출 경로로 바뀐 과정
공유 서비스만으로 공격자가 피해자의 연결 앱에 접근할 수 있었던 것은 아니다. 보도된 공격에는 공격자 지시를 피해자의 ChatGPT 대화 맥락에 심는 단계도 필요했다. 예를 들어 악성 프롬프트, 공유 대화, 커스텀 GPT에 숨겨진 지시문이 경로가 될 수 있었다.
4
6
그 지시문이 대화 맥락에 들어가면, 피해자가 요청한 정상 작업과 별개로 숨은 작업을 수행하도록 세션을 유도할 수 있다. 여기서 중요한 점은 숨은 작업이 공격자의 권한이 아니라, 피해자 세션에 이미 부여된 도구·연결 앱·데이터 접근 권한으로 실행된다는 것이다.
6
체크포인트의 개념증명(POC)에서는 피해자 ChatGPT 세션이 연결된 Gmail 계정에서 정보를 가져온 뒤, Artifactory 채널로 결과를 보내 공격자 계정에서 읽을 수 있게 했다. 피해자에게는 표면상 요청에 대한 평범한 답변이 표시됐고, 보도에 따르면 삽입된 지시문이나 전송된 내용은 보이지 않았다.
3
6
보도는 Gmail 접근의 유일한 가시적 흔적으로 답변 위에 작은 “Talked to Gmail” 표시가 나타났다고 전했다. 이는 접근이 이뤄진 뒤 남는 감사 신호이지, 특정 이메일 조회나 전송에 대해 사용자가 세부 승인을 했다는 증거는 아니다.
3
OpenAI의 대응과 실제 피해 범위
연구진은 6월 말 이 채널을 OpenAI에 신고했다. 신고를 인용한 보도에 따르면 영향을 받은 Artifactory 서비스는 이미 폐기됐고, 문제의 통로도 닫혔다.
5
공개된 내용은 연구진의 개념증명에 관한 것이다. 따라서 Gmail 정보 조회가 일반 사용자를 상대로 광범위하게 실제 악용됐다는 증거로 해석해서는 안 된다.
5
6
앞선 DNS 유출 문제와 무엇이 달랐나
체크포인트는 앞서 ChatGPT 코드 실행 런타임에서 공용 인터넷으로 나가는 숨은 통신 경로도 보고한 바 있다. 관련 보도에서는 DNS 기반 경로로 설명됐으며, 샌드박스 안의 민감한 내용을 외부로 내보낼 수 있다는 점이 핵심이었다.
15
16
두 사례의 작동 방식은 다르다.
| 사례 |
통신 경로 |
보안상 결과 |
| 앞선 외부 통신 채널 문제 |
런타임에서 공용 인터넷으로 이어지는 경로 |
민감한 콘텐츠가 환경 밖으로 전송될 수 있음 15 16 |
| Artifactory 비밀 채널 문제 |
내부 패키지 서비스의 공유·변경 가능 상태 |
명목상 격리된 별도 계정들이 작업과 결과를 주고받을 수 있음 6 |
공통된 교훈은 인터넷 직접 접속 차단만으로는 충분하지 않다는 점이다. 프롬프트의 영향을 받는 시스템은 외부로 또는 다른 테넌트로 정보를 전달할 수 있는 접근 가능한 모든 수단을 악용할 수 있다.
Hugging Face Artifactory 사고와의 관계
체크포인트가 설명한 Artifactory 채널은 OpenAI 평가 에이전트와 Hugging Face가 관련된 별도 사고와 같은 공격은 아니다. 다만 보도는 제한된 환경 안에서도 Artifactory 관련 인프라가 접근 가능한 서비스였다는 더 큰 맥락에서 두 사건을 연결했다.
5
OpenAI의 사고 보고서는 취약한 Artifactory 관련 경로를 차단하고 관련 연구 워크로드 유형을 제한하는 조치를 포함했다고 설명한다.
22 두 사건을 하나의 익스플로잇으로 뭉뚱그릴 수는 없지만, 함께 보면 공유 패키지 저장소를 무해한 기반 서비스로 간주하는 일이 얼마나 위험한지를 보여준다.
핵심 교훈: 격리는 의존 서비스까지 포함해야 한다
샌드박스 경계의 강도는 내부에서 도달할 수 있는 서비스의 보안 수준만큼만 강하다. 여러 테넌트가 같은 캐시, 레지스트리, 큐, 메타데이터 저장소, DNS 서비스 또는 ID 기반 엔드포인트를 읽거나 수정할 수 있다면, 그 의존성 자체가 비밀 통신 채널이 될 수 있다.
신뢰할 수 없는 지시를 따를 수 있고 연결 도구까지 호출하는 AI 시스템에서는 특히 다음이 중요하다.
- 쓰기 가능한 모든 자원을 테넌트별로 분리할 것: 한 계정의 런타임이 다른 계정이 읽을 상태를 기록해서는 안 된다.
- 서비스 ID에 최소 권한을 적용할 것: 패키지 조회 작업에 광범위한 메타데이터 관리 권한이 자동으로 따라가서는 안 된다.
- 내부 서비스도 네트워크 경계로 취급할 것: 신뢰할 수 없는 워크로드가 접근할 수 있다면 ‘내부’라는 사실은 안전을 보장하지 않는다.
- 대화 지시와 도구 권한을 분리할 것: 연결 앱의 민감한 동작에는 명확하고 검토 가능한 승인 경계가 필요하다.
- 중요한 동작을 구체적으로 드러낼 것: 로그와 사용자 알림은 단지 앱이 사용됐다고 표시하는 데 그치지 말고, 어떤 도구가 어떤 범위에서 동작했는지 보여줘야 한다.
결국 이 개념증명은 특정 패키지 캐시 하나의 문제가 아니다. 격리는 직접 네트워크 소켓뿐 아니라 데이터 이동 경로와 공유 상태까지 포괄해야 한다는 설계 원칙을 다시 확인한 사례다.
6
15