배경
Databricks Genie Code는 Databricks에서 자연어 지시를 통해 사용자가 자신의 테넌트 내 데이터를 조작할 수 있게 해주는 에이전틱 어시스턴트입니다.
Genie Code는 채팅에서 사용자를 위한 디스플레이를 렌더링할 수 있으며, 악성 Skill은 이 기능을 악용하여 도구 결과가 조회될 때 데이터 유출을 유발하고 사용자에게 피싱 공격을 표시할 수 있습니다.
이 공격은 사람의 승인(human-in-the-loop) 없이, 그리고 조직이 의존하고 있을 수 있는 통제 기능의 제약 없이 발생할 수 있습니다:
- 조직 수준의 Skill 거버넌스; Genie Code는 조직의 거버넌스가 적용된 카탈로그가 아닌 사용자의 개인 워크스페이스에서 Skill을 로드합니다
- 명령이 실행되기 전에 평가하는 가드레일 에이전트; Databricks는 이를 보안 통제가 아닌 최선을 다한 생산성 기능으로 간주합니다
- 코딩 환경의 이그레스(egress) 통제; 이그레스는 코딩 환경이 아니라 사용자의 브라우저에서 발생합니다
- 채팅에서 렌더링되는 디스플레이의 샌드박싱; Skill은 사용자 데이터로 디스플레이를 구성하며, 디스플레이가 테넌트에서 데이터를 가져올 필요가 없습니다
이 위험은 2026년 8월 16일 Databricks에 보고되었으나, “업로드된 Skill에 악성 콘텐츠가 포함되지 않도록 하는 것은 사용자의 책임”에 해당한다고 판단되었습니다. 온라인 마켓플레이스에서 악성 Skill이 유통되는 실태, 그리고 조직이 의존하고 있을 가능성이 높은 통제 기능이 이 위험을 제거하지 못한다는 점을 고려하여, 위험에 처한 이들에게 정보를 제공하기 위해 이 보고서를 공개합니다.
공격 경로
업로드된 Skill을 사용하여 데이터 분석을 수행하도록 Genie에 지시함
Skill은 일반적으로 온라인 마켓플레이스를 통해 유통되며, 이 생태계는 악성 Skill으로 오염된 것으로 알려져 있습니다. Databricks에는 Skill 거버넌스 시스템이 있지만, Genie Code가 사용하는 Skill은 조직의 거버넌스가 적용된 Catalog가 아닌 사용자의 개인 워크스페이스에서 구성됩니다.
Genie가 악성 Skill의 코드를 실행함
Genie가 Skill의 코드를 실행할 때, “제3자에게 데이터를 전송”하는 것과 같이 사용자가 의도한 작업 범위를 벗어나는 명령을 표시하는 두 번째 에이전트가 이를 검사합니다.
에이전트가 Skill 코드 실행을 승인하면서 악성 기능을 간과하게 됩니다.
Genie가 사용자에게 전체 데이터 분석 결과를 열도록 지시함
결과가 렌더링될 때 피싱 모달이 표시되고 사용자의 데이터셋이 유출됨
악성 Skill의 코드는 두 가지 악성 목적을 수행하는 HTML 요소를 구성합니다. 하나의 효과는 사용자의 자격 증명을 피싱하는 공격자의 웹사이트 오버레이를 렌더링하는 것입니다.
다른 효과는 모달이 렌더링될 때(예: 사용자가 결과를 볼 때) 피해자의 테넌트에서 데이터가 유출되는 것입니다. 악성 Skill의 코드는 피해자 테넌트에 대한 접근 권한을 이용해 민감한 데이터(예: 피해자의 데이터셋)를 수집한 후, 그 데이터를 HTML 디스플레이에 포함시킵니다. 디스플레이가 렌더링되면 악성 디스플레이 내의 JavaScript가 사용자의 브라우저가 네트워크 요청을 발생시켜 데이터를 공격자의 서버로 유출하게 합니다.
코딩 환경에는 공격자의 서버와의 통신을 차단하는 네트워크 이그레스 통제가 있지만, 디스플레이 인터페이스에는 그런 통제가 없어 공격자에게 데이터를 보낼 수 있습니다.
책임 있는 취약점 공개
이 위험은 2026년 8월 16일 Databricks에 보고되었습니다. Databricks 팀은 다음과 같이 판단했습니다:
“업로드된 Skill에 악성 콘텐츠가 포함되지 않도록 하는 것은 궁극적으로 사용자의 책임입니다.”
네트워크 이그레스 통제상 코딩 환경은 신뢰할 수 없는 외부 당사자와 통신하는 것이 허용되지 않았으며, 이 규정은 지켜졌습니다. 단지 데이터를 조회하고 그 데이터를 사용해 iframe을 구성했을 뿐입니다.
사용자에게 렌더링되는 디스플레이에 대한 통제상 디스플레이는 테넌트에서 데이터를 조회하는 것이 허용되지 않았으며, 이 규정 역시 지켜졌습니다. 단지 Skill의 코드가 포함시킨 데이터를 처리했을 뿐입니다.
그 결과, 악성 Skill 코드는 컴퓨팅 환경에서 데이터를 조회하여 iframe에 포함시킬 수 있고, iframe은 네트워크 요청을 통해 데이터를 유출할 수 있습니다…
유출을 막기 위한 통제는 기술적으로는 지켜졌지만, 그럼에도 불구하고 유출은 성공했습니다.
가드레일 에이전트가 악성 명령을 승인한 것과 관련하여, Databricks 팀은 다음과 같이 언급했습니다,
“자동 허용(auto-allow) 기능은 보안 경계로 의도된 것이 아니라, 신뢰할 수 없는 입력이 자동으로 실행되는 것을 막기 위한 통제 수단으로 의도된 것입니다.”
문서는 다음과 같이 이 진술을 뒷받침합니다:
그러나 '자동 승인(auto-approve)'이 기본값이자 '권장' 명령 승인 모드로 문서화되어 있기 때문에, 사용자가 실제로 운영 데이터와 함께 이를 사용하지 말라는 지침을 준수할 가능성은 낮다고 우리는 판단합니다.
Genie Code의 Skills가 조직 수준의 통제된 Catalog가 아닌 사용자의 개인 작업 공간에서 로드된다는 사실과 관련해서는 어떠한 언급도 제공되지 않았습니다.
타임라인
| 2026년 8월 16일 | PromptArmor가 Databricks에 취약점을 공개함 |
| 2026년 8월 17일 - 9월 15일 | PromptArmor와 Databricks가 협의함 |
| 2026년 9월 16일 | PromptArmor가 발표 의사를 Databricks에 통보함 |
