본문으로 건너뛰기

Vercel + Lovable 침해 사고: AI 도구가 어떻게 Web3의 새로운 공급망 리스크가 되었나

· 약 13 분
Dora Noda
Software Engineer

2026년 4월의 단 한 주 동안, 겉보기에 서로 관련 없어 보이는 두 건의 SaaS 보안 사고가 발생하여 모든 Web3 팀의 위협 모델을 재설정해야 하는 상황이 벌어졌습니다. 수천 개의 지갑 UI와 dApp 프론트엔드가 실행되는 배포 플랫폼인 Vercel은, 공격자가 Context.ai라는 침해된 AI 생산성 도구를 통해 자사 환경으로 침투했다고 밝혔습니다. 며칠 후, 바이브 코딩(vibe-coding) 플랫폼인 Lovable은 수정되지 않은 권한 부여 버그를 통해 2025년 11월 이전의 수천 개 프로젝트에서 소스 코드, 데이터베이스 자격 증명, AI 채팅 내역을 유출한 사실이 드러났습니다. 두 사례는 인프라를 공유하지 않지만, 더 심각한 공통점이 있습니다. 바로 동일한 확산 패턴입니다. AI 도구가 개발자 툴체인 내에서 조용히 특권 계정(privileged identities)이 되었고, Web3는 그 위험을 제대로 평가하지 못한 채 고스란히 떠안게 되었습니다.

스마트 컨트랙트 감사, 멀티시그 거버넌스, 하드웨어 지갑 서명 등 그 어떤 방어책도 공격자가 사용자 트랜잭션 승인 UI를 배포하는 빌드 파이프라인을 침해할 때 사용하는 경로를 막아주지 못합니다. 2026년 4월의 사건들은 이러한 공백을 극명하게 보여주었습니다. 업계가 이를 경종으로 받아들일지, 아니면 또 다른 어쩔 수 없는 손실로 치부할지는 다음 분기의 행보에 달려 있습니다.

Vercel-Context 체인: 단 한 번의 OAuth 클릭으로 수백 개의 프론트엔드가 뚫리다

Vercel의 2026년 4월 19일 사고 보고서는 OAuth 오남용의 전형적인 사례를 보여줍니다. 공격은 Vercel에서 시작되지 않았습니다. 수개월 전인 2026년 2월, 한 Context.ai 직원이 Lumma Stealer가 포함된 Roblox 치트를 설치하여 Google Workspace 자격 증명과 Supabase, Datadog, Authkit의 시크릿을 분실하면서 시작되었습니다.

이것만으로는 흔한 자격 증명 탈취 사례에 불과합니다. 하지만 이를 다수 조직에 걸친 공급망 공격으로 만든 것은 OAuth의 권한 범위(scope)였습니다. 최소 한 명 이상의 Vercel 직원이 이전에 Vercel 기업용 Google 계정을 사용하여 Context.ai의 "AI 오피스 스위트"에 가입하면서 "모두 허용(Allow All)"을 클릭했습니다. 이로 인해 Context.ai는 Vercel의 Google Workspace에 대해 지속적이고 광범위한 권한을 부여받았습니다. 공격자가 Context.ai의 OAuth 앱을 장악했을 때, 그 신뢰 관계는 자동으로 상속되었습니다. 거기서부터 공격자는 해당 직원의 Vercel 워크스페이스 계정으로 침투한 뒤, Vercel 환경 내부에서 민감하지 않은 환경 변수들을 열거하고 복호화했습니다.

ShinyHunters라는 이름의 위협 행위자는 탈취한 데이터베이스를 BreachForums에 200만 달러에 판매한다고 게시했습니다. Vercel은 "민감함(sensitive)"으로 표시된 변수들은 암호화된 상태로 유지되었으며 읽히지 않았다고 주장합니다. 하지만 이 차이점보다 더 중요한 질문은 이것입니다. Vercel에 배포하는 Web3 프로젝트 중 얼마나 많은 곳이 실제로 RPC 키, API 토큰, 인덱서 시크릿을 민감함으로 표시했을까요? 자격 증명을 서둘러 교체하려는 움직임으로 미루어 볼 때, 정답은 "모두는 아니다"였습니다.

Solana DEX인 Orca는 자사 프론트엔드가 Vercel에서 실행됨을 확인하고 예방 차원에서 모든 배포 자격 증명을 교체했습니다. Cork Protocol의 CTO는 프로젝트들이 자격 증명을 교체할 시간을 가질 때까지 Vercel에서 호스팅되는 DeFi 앱과의 상호작용을 중단할 것을 사용자들에게 공개적으로 촉구했습니다. 온체인 프로토콜과 사용자 자산은 직접적인 영향을 받지 않았지만, 침해된 Vercel 배포 환경에서 연결된 지갑으로 전달되는 악성 "무제한 승인(approve unlimited)" 트랜잭션으로 이어지는 경로는 스마트 컨트랙트 감사를 통과하지 않습니다. 이는 Web3가 구축한 모든 방어 체계를 우회합니다.

왜 "프론트엔드 보안"은 Web3가 감사를 잊은 계층인가?

지난 5년 동안 암호화폐 보안의 지배적인 내러티브는 "스마트 컨트랙트가 자금을 보유하므로 스마트 컨트랙트를 감사하라"는 것이었습니다. 이는 DeFi 규모가 작고 프론트엔드가 IPFS의 단순한 정적 페이지였을 때는 타당했습니다. 하지만 오늘날의 업계 상황은 다릅니다. 지갑 UI는 Vercel, Netlify, Cloudflare Pages, AWS Amplify에서 배포되며, 서명 페이로드는 CDN을 통해 전달되는 JavaScript로 구성됩니다. 단 하나의 악성 번들만으로도 TLS 보안을 깨지 않고 사용자의 자산을 갈취할 수 있습니다.

Web3 프론트엔드 침해의 역사는 짧지만, 그 피해액은 시사하는 바가 큽니다.

  • 2022년 8월, Slope Wallet: 잘못 설정된 Sentry 통합으로 인해 Slope 모바일 지갑 사용자의 개인키 정보가 애플리케이션 모니터링 서비스로 조용히 전송되었습니다. 공격자는 약 4시간 만에 9,231개의 지갑에서 410만 달러를 탈취했습니다. "취약점"은 과도한 권한을 가진 일상적인 텔레메트리 도구였습니다. 이는 정확히 OAuth 오남용 패턴과 일치합니다.
  • 2023년 12월, Ledger Connect Kit: 전직 Ledger 직원이 NPM 세션 토큰을 피싱당하여 2FA(2단계 인증)가 우회되었습니다. 공격자는 @ledgerhq/connect-kit 1.1.5~1.1.7 버전에 악성 지갑 탈취 페이로드를 삽입하여 배포했습니다. 이 패키지는 5시간 동안 노출되었고 2시간 동안 활발히 자금을 탈취했으며, 100개 이상의 dApp 프론트엔드에 영향을 미쳤습니다. 약 60만 달러가 도난당했으며, 누군가 빠르게 발견했기에 망정이지 피해는 더 커질 수 있었습니다.
  • 2024년 July, Squarespace DNS 하이재킹: Squarespace의 도메인 계정 생성 마이그레이션 결함으로 인해 공격자가 이메일 인증 없이 Google 도메인에서 이전된 도메인의 관리자 이메일을 등록할 수 있었습니다. Compound와 Celer Network 프론트엔드가 지갑 탈취 사이트로 리다이렉트되었습니다. Decrypt의 보도에 따르면 사고 이후 몇 주 동안 220개 이상의 DeFi 프로토콜이 여전히 위험에 노출되어 있었습니다.

이러한 모든 사고는 공통된 형태를 띱니다. 텔레메트리, 패키지 레지스트리, DNS 등 스택의 비블록체인 계층이 침해되었으며, 스마트 컨트랙트 감사는 이에 대해 아무런 역할을 하지 못했습니다. 2026년 4월은 이 목록에 두 개의 새로운 계층을 추가했습니다. 바로 OAuth ID 역할을 하는 AI 생산성 도구(Vercel)와 고객 코드 및 자격 증명을 저장하는 AI 코딩 플랫폼(Lovable)입니다.

Lovable의 BOLA 버그: 48일, 800만 명의 사용자, 그리고 "의도된 동작"

Vercel이 OAuth 사고의 영향 범위를 재구성하는 동안, 800만 명의 사용자를 보유하고 66억 달러의 가치를 지닌 바이브 코딩(vibe-coding) 플랫폼인 Lovable은 자체 보안 사고를 공개했습니다. 이 취약점은 객체 수준 권한 부여 취약점(BOLA, Broken Object Level Authorization)이었습니다. 즉, API 엔드포인트가 소유권 확인 없이 사용자 데이터를 노출한 것입니다. 무료 계정과 5번의 API 호출만으로 다른 사용자의 프로필, 프로젝트 소스 코드 및 해당 소스 코드에 포함된 데이터베이스 자격 증명을 읽기에 충분했습니다.

보도에 따르면 이 버그는 공개 48일 전에 HackerOne 트리아저(triagers)에 의해 종결되었습니다. 노출된 데이터가 "공개(public)" 플래그 아래에 있었기 때문인데, Lovable은 나중에 이 플래그의 의미가 "불분명했다"고 인정했습니다. 그 기간 동안 플랫폼상의 2025년 11월 이전의 모든 프로젝트에 접근이 가능했습니다. AI 채팅 기록, 고객 소스 코드, 그리고 소스 코드에 포함된 데이터베이스, 결제 API, 그리고 블록체인 RPC 엔드포인트에 대한 자격 증명은 스크립트를 작성할 의지만 있다면 누구라도 열거할 수 있는 상태였습니다.

X(구 트위터)에서의 Lovable의 초기 반응은 어떠한 "데이터 유출"도 없었음을 부인하고 이번 노출을 "의도된 동작"으로 재정의했는데, 이 부분이 Web3 빌더들이 가장 우려해야 할 대목입니다. 이는 AI 코딩 플랫폼의 운영 가정이 사용자들이 물려받은 위협 모델을 아직 제대로 흡수하지 못했음을 시사합니다. Web3 팀이 Lovable을 사용하여 프론트엔드 프로토타입을 제작할 때, 프로토타이핑 중에 포함된 자격 증명은 사라지지 않습니다. 그것들은 플랫폼에 저장되고 색인화되어 검색 가능하며, 2026년 4월 기준으로 최소 48일 동안 무료 계정을 가진 누구에게나 노출되었습니다.

OAuth 확산의 승수 효과: "키 로테이션"만으로는 부족한 이유

두 사건 모두 동일한 근본 원인으로 거슬러 올라갑니다. 어떤 스코프가 어떤 앱에 부여되었는지에 대한 인벤토리가 없는 조직 내에서 AI 도구에 영구적이고 다중 앱에 걸친 OAuth 스코프가 부여되고 있다는 점입니다. 최근 기업 데이터는 그 규모를 강조합니다. 98%의 조직이 승인되지 않은 AI 사용을 보고하고 있으며, 현재 평균적인 기업은 830개 이상의 애플리케이션을 실행하고 있으며 그 중 61%는 공식적인 IT 감독 밖에서 운영되고 있습니다. AI 도구가 해킹되면, 해당 도구에 부여된 모든 OAuth 권한은 공격자의 사정권에 들어갑니다.

Push Security의 Vercel 사고 사후 분석은 이를 직설적으로 표현합니다. Vercel의 ID 모델이 서드파티 AI 앱을 직원과 동일하게 취급했기 때문에 공격이 성공했다는 것입니다. "이 도구는 캘린더를 읽을 수는 있지만 환경 변수를 열거할 수는 없다"와 같은 스코프 축소가 없었습니다. 이는 Vercel만의 실패가 아닙니다. 지난 18개월 동안 AI 비서를 통합한 거의 모든 Google Workspace, Microsoft 365 및 Okta 테넌트의 기본 상태입니다.

Web3 팀에게 이는 Vercel 급의 침해 사고 이후 키를 교체(rotation)하는 것이 필수적이긴 하지만 충분하지는 않다는 것을 의미합니다. 공격 벡터인 AI 도구에 대한 과도한 권한의 OAuth 부여는 공급망 내의 모든 SaaS 제공업체에 걸쳐 지속됩니다. 4월에 Vercel 배포 자격 증명을 교체했더라도, 여전히 드라이브 전체 접근 권한을 가진 AI 회의록 요약 앱을 사용하고 있다면, 정보 탈취형 악성코드(infostealer) 감염 한 번으로 동일한 결과를 초래할 수 있습니다.

진정으로 방어된 Web3 프론트엔드의 모습

현재 몇 가지 방어 패턴이 존재하며, 이를 결합했다면 Vercel이나 Lovable 급의 사고를 무력화할 수 있었을 것입니다. 하지만 현재 이 중 어느 것도 필수 사항은 아닙니다.

지갑 UI 번들을 위한 하위 리소스 무결성 (SRI) 해시. SRI는 W3C 권고안으로, 브라우저가 실행 전 가져온 리소스가 암호화 해시와 일치하는지 확인할 수 있게 해줍니다. 만약 빌드 파이프라인에 침입한 공격자 등에 의해 무결성 해시가 게시된 후 Vercel 배포본이 수정되면, 브라우저는 로드를 거부합니다. SRI는 2016년부터 존재해 왔으며 지원도 쉽습니다. 하지만 메인 번들이 배포될 때마다 변경되고 누군가가 해시 로테이션을 관리해야 하기 때문에, 거의 어떤 Web3 프론트엔드도 메인 번들에 이를 사용하지 않습니다.

온체인 프론트엔드 매니페스트. ENS contenthash 레코드와 IPFS CID를 사용하면 프로젝트가 "이것이 프로토콜 X의 공식 프론트엔드이다"라는 사실을 온체인에 고정할 수 있습니다. UI를 로드하기 전 매니페스트를 참조하는 지갑은 제공된 번들이 게시된 CID와 일치하지 않는 경우를 감지할 수 있습니다. EIP-2477은 토큰 메타데이터를 위해 이를 탐구했으며, 동일한 아이디어가 dApp 프론트엔드로 일반화될 수 있습니다. 현재 도입은 Uniswap의 IPFS 배포와 같이 이미 IPFS 전용으로 출시되는 프로젝트에 집중되어 있으며, 그 외의 곳에서는 거의 찾아볼 수 없습니다.

클라이언트 측 트랜잭션 시뮬레이션. Rabby나 Wallet Guard와 같은 지갑은 서명 전 모든 트랜잭션을 시뮬레이션하고 실제 자산 이동을 사용자에게 보여줍니다. 이것이 Ledger Connect Kit 공격자의 탈취 로직 실행 자체를 막지는 못했겠지만, 사용자가 확인을 클릭하기 전 "이 트랜잭션은 당신의 모든 USDC 잔액을 0xunknown으로 전송합니다"라는 경고를 볼 기회를 주었을 것입니다. 도입이 늘고는 있지만 여전히 프로토콜 단위가 아닌 지갑 단위로 이루어지고 있습니다.

하드웨어 지갑의 "보는 대로 서명하는 (What You See Is What You Sign)" 디스플레이. Ledger Stax나 Keystone과 같은 장치는 콜데이터 (calldata)를 파싱하고 장치 화면에 사람이 읽을 수 있는 의도를 렌더링하여 UI 레이어의 피싱을 무력화합니다. 이는 컨트랙트에 클리어 사이닝 (clear-signing) 스키마가 게시된 경우에만 작동합니다. 대부분의 컨트랙트에는 이것이 없습니다.

이 네 가지 방어 수단의 공통점은 다음과 같습니다. 존재하고 작동하지만, 기본적으로 배포되지는 않는다는 점입니다. 이러한 수단들은 제품 기능을 출시하는 것과 경쟁하는 엔지니어링 시간을 소모하며, 이들이 방지하는 최악의 시나리오인 대규모 자산 탈취는 2026년 4월 전까지 주로 "다른 사람"에게 일어나는 일이었습니다.

변곡점에 대한 질문

Web3 는 역사적으로 새로운 방어적 기본 설정 (defensive defaults) 을 도입하기 위해 5,000만 달러 이상의 사용자 자금 손실이 필요했습니다. 2016 년 DAO 해킹 이후 감사는 필수 요건 (table stakes) 이 되었습니다. 2022 년 Ronin 및 Wormhole 익스플로잇 이후 멀티시그 거버넌스는 선택 사항에서 필수 사항으로 바뀌었습니다. 마운트곡스 (Mt. Gox) 와 수십 건의 거래소 침해 사고 이후 하드웨어 월렛은 보편화되었습니다.

2026 년 4 월의 연쇄 보안 침해 사고는 5,000만 달러의 손실을 발생시키지는 않았습니다. Vercel 공격자는 사용자 자금이 아닌 환경 변수를 탈취했습니다. Lovable 의 노출은 서명된 트랜잭션이 아닌 소스 코드를 드러냈습니다. 두 사건 모두 경고 사격이었습니다 — 취약점이 수정 가능한 코드베이스가 아니라 신뢰 관계 자체에 있었다는 점을 제외하면, 실제 악용 사례가 없는 취약점 공개와 마찬가지였습니다.

다음 분기의 과제는 Web3 빌더들이 이 경고의 가치를 올바르게 평가할 것인지, 아니면 실제 손실 사건이 발생할 때까지 기다릴 것인지 여부입니다. 프론트엔드 보안 — SRI, 온체인 매니페스트, 트랜잭션 시뮬레이션, 클리어 사이닝 (clear signing) — 은 2017 년의 스마트 컨트랙트 감사와 같은 양상을 띠고 있습니다: 기술적으로는 가능하고, 문화적으로는 선택 사항이며, 곧 분명히 필요한 것으로 재분류될 것입니다. 차이점은 그 교훈의 비용을 프로토콜이 아닌 사용자가 지불한다는 것입니다.

먼저 움직이는 팀은 한 분기 정도의 엔지니어링 비용을 투입하게 될 것입니다. 기다리는 팀은 사용자 이탈, 규제 노출, 그리고 몇 달 동안 작성하게 될 사후 분석 보고서 (post-mortems) 를 포함하여, 첫 번째 5,000만 달러 이상의 Vercel 급 자금 유출 사고가 초래할 모든 비용을 감수하게 될 것입니다.


BlockEden.xyz 는 12 개 이상의 블록체인 에서 프로덕션 RPC 및 인덱싱 인프라를 운영하며, 프론트엔드 보안을 최우선 순위로 다루는 팀을 위해 설계된 환경 격리, 범위 지정 API 키 및 로테이션 도구를 제공합니다. 공급망이 적대적이라고 가정하는 인프라 위에서 구축하십시오.

출처