
V8의 공유 JavaScript 힙을 덤프하여 OpenAI Codex 샌드박스를 탈출한 방법
요약
본 글은 V8 엔진의 공유 JavaScript 힙을 덤프하는 방법을 이용해 OpenAI Codex가 구축한 샌드박스 환경에서 탈출하는 보안 취약점 연구를 다룹니다. 개발자들이 신뢰 경계로 오인했던 메모리 구조적 결함을 악용하여 특권 영역에 접근할 수 있음을 보여줍니다.
핵심 포인트
- V8의 공유 JavaScript 힙을 덤프하여 공격 경로를 확보했습니다.
- 샌드박스 환경이 단일 메모리 힙을 공유한다는 점을 이용했습니다.
- 신뢰 경계로 여겨졌던 VM 컨텍스트가 실제로는 보안 취약점을 가집니다.
우리는 V8의 공유 JavaScript 힙을 덤프하고, 인접한 신뢰할 수 있는(trusted) V8 컨텍스트에 속하는 특권 UUID 형태의 토큰을 스캔함으로써 OpenAI의 Codex 샌드박스에서 탈출했습니다.
저는 때때로 사이버 보안을 신뢰 경계(trust boundaries)를 구축하고 이를 깨는 방법을 찾는 끝없는 순환 과정으로 생각합니다. 이것은 흥미로운 '탈출'에 대한 이야기입니다.
OpenAI가 기본 활성화된 MCP 서버를 구축했을 때, 그들은 하나의 Node.js 프로세스 내에서 신뢰할 수 있는(trusted) 특권 JS 컨텍스트와 신뢰할 수 없는(untrusted) 컨텍스트를 함께 실행했습니다.
그들은 V8의 VM 컨텍스트가 보안 경계 역할을 할 것이라고 가정했습니다. 왜냐하면 실제로 각기 다른 전역 객체(global object)와 스코프를 가진 격리된 실행 환경을 생성하기 때문입니다.
하지만 그들은 이 컨텍스트들이 단일 메모리 힙(single memory heap)을 공유한다는 사실을 간과했습니다. 그래서 우리의 신뢰할 수 없는 코드가 그 힙을 스냅샷으로 찍고, 거기서 토큰을 추출하여 특권 영역에 도달하는 데 사용했습니다.
전체 기술 분석은 다음에서 읽어보세요:
AI 자동 생성 콘텐츠
본 콘텐츠는 X 토픽: AI Agents/MCP의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기