실제로 터진 사고들
바이브코딩이 대중화되면서 보안 사고도 급증하고 있습니다. AI가 만든 코드의 보안 취약점은 기존 개발보다 더 체계적으로 반복됩니다. 같은 프롬프트에서 같은 취약점 패턴이 나오기 때문입니다.
사례 1: Lovable CRM 170개 앱 DB 노출 (2025.06)
Lovable로 만든 170개 이상의 앱에서 Supabase RLS가 설정되지 않은 채 운영되고 있었습니다. 고객 이름, 이메일, 전화번호, 결제 정보가 anon key만으로 조회 가능한 상태였습니다.
원인: Lovable이 생성한 코드에 RLS 정책이 포함되지 않았고, 개발자들이 이를 인지하지 못했습니다.
교훈: AI가 생성한 DB 설정은 반드시 직접 검증해야 합니다.
사례 2: Cursor 생성 API 키 GitHub 유출 (2025.09)
Cursor로 만든 CRM 프로젝트에서 OpenAI API 키와 Supabase service_role 키가 코드에 하드코딩된 채로 GitHub에 push됐습니다. 봇이 15분 만에 탐지하여 API 키로 수백 달러의 요금이 발생했습니다.
원인: AI가 .env 대신 코드에 직접 키를 삽입했고, .gitignore 설정이 누락됐습니다.
교훈: AI 생성 코드에서 시크릿 패턴을 반드시 스캔해야 합니다.
사례 3: 1인 쇼핑몰 CRM 고객 5만건 유출 (2025.11)
Bolt로 만든 고객 관리 페이지에서 /api/customers 엔드포인트에 인증이 없었습니다. URL만 알면 전체 고객 목록을 가져갈 수 있는 상태로 6개월간 운영됐습니다.
원인: AI가 프론트엔드에서 호출하는 API를 만들면서 인증 미들웨어를 추가하지 않았습니다.
교훈: 모든 API 엔드포인트에 인증 여부를 점검해야 합니다.
사례 4: 학원 CRM 학생 개인정보 검색엔진 노출 (2026.01)
바이브코딩으로 만든 학원 관리 시스템의 학생 목록 페이지가 robots.txt 미설정으로 Google에 색인됐습니다. 학생 이름, 연락처, 수강 정보가 검색 결과에 노출된 사례입니다.
원인: AI가 SEO는 신경 썼지만 민감 페이지의 색인 차단은 고려하지 않았습니다.
교훈: 관리자/내부 페이지는 반드시 noindex 처리와 인증 보호를 적용해야 합니다.
사례 5: SaaS CRM 관리자 페이지 무인증 접근 (2026.02)
/admin 경로에 비밀번호 없이 접근 가능한 상태로 배포된 CRM입니다. 고객 데이터 수정, 삭제, 내보내기가 누구에게나 열려있었습니다.
원인: AI가 관리자 페이지를 만들면서 인증 래퍼를 생략했습니다.
교훈: 관리자 경로는 예측 불가능한 URL과 강력한 인증을 모두 적용해야 합니다.
내 CRM은 안전한가요?
위 5가지 사고의 공통점은 점검 없이 배포했다는 것입니다. CodeScan에서 URL 하나로 30초 만에 주요 취약점을 확인할 수 있습니다.