VibeOps Club / Гайды
Вайбкодинг и безопасность: 8 реальных инцидентов 2025–2026 и выводы из них
AI-агенты позволили собрать приложение за выходные. Здесь собраны реальные, публично задокументированные инциденты в таких приложениях: что произошло, в чём причина и что могло бы это предотвратить. У каждого кейса есть ссылка на первоисточник.
Почти ни одна из этих проблем не связана с логикой приложения. Они возникают в пяти областях: секреты, правила доступа к данным, права агентов, окружения и бэкапы, отсутствие мониторинга.
1. Moltbook: ключ Supabase во фронтенде, RLS выключен
- Когда
- 31 января 2026 (опубликовано 2 февраля 2026)
- Что
- Исследователи Wiz нашли ключ Supabase прямо в клиентском JavaScript. Row Level Security был выключен, поэтому ключ давал полный доступ к базе без авторизации: около 1,5 млн API-ключей, ~35 000 email и 4 060 личных сообщений. Команда закрыла дыру в течение нескольких часов после сообщения.
- Причина
- Anon-ключ Supabase задуман публичным, а что он может читать, ограничивает RLS. С выключенным RLS любой, у кого был ключ, получал полный доступ к базе.
- Вывод
- Включить RLS на каждой таблице, прописать явные политики и перед запуском проверить API от имени анонимного пользователя.
- Источник
- Wiz Research
2. Приложения на Lovable: у 10% проверенных утекали данные (CVE-2025-48757)
- Когда
- Скан завершён 21 марта 2025; публичное раскрытие 29 мая 2025
- Что
- Мэтт Палмер проверил 1 645 приложений, собранных в Lovable, и нашёл 303 уязвимых эндпоинта в 170 проектах (около 10,3%): данные пользователей мог прочитать, а иногда и изменить любой.
- Причина
- Сгенерированные приложения ходят в Supabase прямо из браузера с публичным ключом и полностью полагаются на RLS, который отсутствовал или был слишком широким.
- Вывод
- Сгенерированный код тоже нужно проверять на безопасность. Если клиент ходит в базу напрямую, правила доступа выполняют роль бэкенда.
- Источник
- Matt Palmer, заявление по CVE-2025-48757
3. EnrichLead: «ни строчки руками» и закрытие через неделю
- Когда
- Март 2025
- Что
- 15 марта основатель написал, что его SaaS собран в Cursor и в нём «zero hand written code». 17 марта: «меня атакуют… лимиты API-ключей исчерпаны, люди обходят подписку, создают мусор в базе». 20 марта он объявил о закрытии приложения.
- Причина
- По разборам комментаторов, API-ключи и проверка подписки жили на клиенте, без серверной авторизации и rate limit. Сам основатель написал: «не стоило выкатывать незащищённый код в прод».
- Вывод
- Проверку, которая выполняется только в браузере, может обойти любой. Пейволы, квоты и ключи должны жить на сервере, а на каждом платном API нужны rate limit и лимиты расходов.
- Источник
- Пост основателя в X, Indie Hackers
4. PocketOS: агент удалил прод и бэкапы за 9 секунд
- Когда
- Апрель 2026
- Что
- Агент в Cursor на Claude Opus нашёл CLI-токен Railway в постороннем файле и одним API-вызовом удалил production-базу вместе с бэкапами тома. Данные удалось восстановить примерно через час с помощью Railway.
- Причина
- Токен создавали для управления доменами, но он разрешал любые операции. Он лежал в репозитории, в зоне досягаемости агента. Бэкапы удалялись тем же ключом.
- Вывод
- Токены с минимальными правами, никаких инфраструктурных ключей в репозитории, бэкапы, которые нельзя удалить тем же ключом. Исходите из того, что агент использует все права, которые найдёт.
- Источник
- The Register
5. Replit × SaaStr: агент стёр prod-базу во время code freeze
- Когда
- Июль 2025
- Что
- На 9-й день эксперимента Джейсона Лемкина с вайбкодингом агент Replit удалил production-базу с данными 1 206 руководителей и 1 196 компаний, несмотря на явный запрет изменений. Ещё он сгенерировал базу из 4 000 вымышленных людей и сначала заявил, что откат невозможен (это оказалось неправдой).
- Причина
- У агента был доступ на запись в прод, данные dev и prod не были разделены.
- Вывод
- Разделять dev и prod, по умолчанию не пускать агентов в прод, проверять бэкапы самому, а не верить отчёту агента. Replit после инцидента добавил автоматическое разделение dev- и prod-баз.
- Источник
- The Register, Fortune
6. Base44: приватные приложения открыты любому, кто знает ID
- Когда
- Сообщено 9 июля 2025; опубликовано 29 июля 2025
- Что
- В Wiz обнаружили, что эндпоинты регистрации и подтверждения OTP в Base44 не требовали авторизации. Зная несекретный ID приложения, можно было создать подтверждённый аккаунт в приватном корпоративном приложении в обход SSO. В Wix исправили уязвимость меньше чем за 24 часа и не нашли следов эксплуатации.
- Причина
- Уязвимость была в эндпоинтах самой платформы.
- Вывод
- У платформ тоже бывают баги. Для чувствительных данных нужен свой слой контроля доступа и подписка на security-бюллетени вендоров.
- Источник
- Wiz Research
7. RedAccess: ~5 000 публичных vibe-coded приложений с корпоративными данными
- Когда
- Май 2026
- Что
- Исследователи Red Access нашли около 380 000 публично доступных ресурсов на Lovable, Replit, Netlify и Base44. Примерно в 5 000 из них были чувствительные корпоративные данные: медицинские и финансовые записи, логи чат-ботов, стратегические документы.
- Причина
- Приложения публичны по умолчанию и индексируются поисковиками. Внутренние инструменты выкатывали без авторизации.
- Вывод
- Проверять видимость по умолчанию у всего, что публикуете, закрывать внутренние инструменты логином и вести список всего, что сейчас доступно из интернета.
- Источник
- Axios, eWeek
8. Escape: 5 600 приложений, 400+ утёкших секретов
- Когда
- Октябрь 2025
- Что
- Специалисты Escape проанализировали более 5 600 публичных приложений на Lovable, Base44, Create.xyz, Bolt.new и Vibe Studio и нашли более 2 000 уязвимостей, 400+ открытых секретов и 175 случаев утечки персональных данных.
- Причина
- Одни и те же ошибки в масштабе: секреты в клиентском коде и отсутствие контроля доступа.
- Вывод
- Перед каждым запуском прогонять сканирование секретов и базовый security-скан.
- Источник
- Escape, методология
Не вайбкодинг, но выводы те же
Две громкие истории часто приписывают вайбкодингу, хотя это не так. Знать их всё равно полезно:
- Tea (июль 2025). Старый Firebase-бакет открыл ~72 000 изображений, включая ~13 000 селфи и фото документов; из-за второй проблемы утекло более 1 млн личных сообщений. Код появился раньше, чем вайбкодинг стал практикой. Вывод: права на хранилища. Simon Willison
- Cara (июнь 2024). Приложение выросло с 40 тыс. до 650 тыс. пользователей за неделю и получило счёт Vercel на $96 280 за serverless-функции. Вывод: лимиты и алерты по расходам настраивают до того, как они понадобятся. TechCrunch
Пять закономерностей за этими инцидентами
- Секреты во фронтенде или в репозитории: Moltbook, EnrichLead, PocketOS. Держать ключи на сервере, сканировать репозиторий на секреты, перевыпускать всё, что утекло. Гайд: API-ключи и секреты.
- Нет серверной авторизации или RLS: Lovable, Moltbook, EnrichLead. Проверять доступ от имени анонимного пользователя, все проверки делать на сервере.
- У агентов слишком много прав: PocketOS, Replit. Токены с узкими правами, никаких prod-ключей у агентов, разделение dev и prod. Гайд: права AI-агента.
- Нет лимитов расходов: EnrichLead, Cara. Лимиты, бюджетные алерты и rate limit на каждом платном сервисе.
- Никто не следит: почти везде проблему первым нашёл внешний исследователь. Базовые логи, алерты и список того, что опубликовано.
Мы превратили эти закономерности в пошаговый список: чек-лист продакшн-деплоя для вайбкодеров.