Перейти к основному содержимому
Искусственный интеллект

Безопасны ли приложения на вайб-кодинге? 8 уязвимостей

Опубликовано 13 мин чтения
Белый макет современного дома ночью с открытой боковой дверью, из которой на газон высыпаются бумажные папки

Коротко

На 15 ноября 2026 года приложения, созданные вайб-кодингом, по умолчанию небезопасны: аудит 2026 года нашёл хотя бы одну уязвимость в 91,0% из 200 опубликованных приложений, чаще всего нарушение контроля доступа [4]. Решение — короткий список проверок, в начале которого правила базы данных, утёкшие ключи и отсутствие проверки входа [1][3][6].

Главное

  1. Аудит 2026 года, охвативший 200 публично развёрнутых приложений на вайб-кодинге, нашёл хотя бы одну уязвимость в 91,0% из них; нарушение контроля доступа затронуло 64,00% приложений [4].
  2. Исследование ACM CCS 2026 года по 8.641 репозиторию Lovable показало, что в 61,2% есть хотя бы одно правило чтения, открытое для незарегистрированных посетителей [5].
  3. Escape нашла более 2.000 уязвимостей, более 400 раскрытых секретов и 175 случаев утечки персональных данных в более чем 5.600 публичных приложениях на вайб-кодинге и называет эти цифры нижней границей [3].
  4. CVE-2025-48757 показала, как это происходит: в 170 из 1.645 проектов Lovable, проверенных в марте 2025 года, таблицы читались без нужных правил на уровне строк [1][2].
  5. Ключ publishable в Supabase задуман как публичный, но ключ secret или service_role в коде браузера даёт полный доступ и обходит все правила на уровне строк [6][7].
  6. По состоянию на 15 ноября 2026 года Supabase сообщает, что выводит из употребления старые ключи anon и service_role до конца 2026 года, поэтому старым приложениям, созданным вайб-кодингом, нужно проверить ключи уже сейчас [8].
  7. Две учётные записи и браузер без входа выявляют самые частые уязвимости раньше, чем это сделают посторонние [4][5].
На этой странице Разделов: 12
  1. Безопасны ли приложения, созданные вайб-кодингом?
  2. Что находят исследования безопасности в приложениях на вайб-кодинге?
  3. Почему инструменты ИИ создают небезопасные приложения?
  4. Какие 8 уязвимостей проверить в первую очередь?
  5. Как проверить своё приложение на эти уязвимости?
  6. Как исправить открытые правила Supabase и утёкшие ключи?
  7. Встроенные сканеры безопасности находят всё?
  8. Безопасно ли пользоваться приложениями, которые другие создали вайб-кодингом?
  9. Частые ошибки
  10. Частые вопросы
  11. Глоссарий
  12. Источники

Безопасны ли приложения, созданные вайб-кодингом?

Не по умолчанию: все крупные исследования, приведённые здесь, нашли серьёзные уязвимости у значительной части проверенных приложений [3][4][5]. Приложения обычно работают. Проблема в том, что они позволяют делать посторонним.

Аудит 2026 года собрал 9.041 приложение с открытым кодом, созданное с помощью Claude Code и Lovable, и изучил 200 из них, опубликованных в открытом доступе. Он нашёл 1.186 уязвимостей, и в 182 из 200 приложений (91,0%) была хотя бы одна [4]. Из этих уязвимостей 65,77% получили критический или высокий уровень, в том числе 18,47% — критический [4].

Авторы также проверили, решают ли проблему более удачные промпты и настройки агентов. Они уменьшили её, но не устранили, а одна и та же задача, запущенная трижды, могла один раз дать безопасный результат, а в следующий — уязвимый [4]. Иначе говоря, чистый результат одной сборки мало говорит о следующей.

Основы метода описаны в руководстве Pouyam Vibe Coding Explained: What It Is, How It Works and the Real Risks («Что такое вайб-кодинг и каковы реальные риски»). Для первого проекта план старта даёт Vibe Coding for Beginners: How to Start Safely in 2026 («Вайб-кодинг для начинающих»). Эта страница идёт на уровень глубже: конкретные уязвимости и способы проверить каждую.

Что находят исследования безопасности в приложениях на вайб-кодинге?

Четыре независимых источника указывают на одно слабое место: данные, которые может прочитать или изменить не тот человек [1][3][4][5].

  • Аудит 200 опубликованных приложений (2026): нарушение контроля доступа стало крупнейшей категорией — 339 из 1.186 уязвимостей (28,58%) — и затронуло 64,00% приложений. Инъекции затронули 54,00%, ошибки аутентификации — 51,50% [4].
  • Исследование ACM CCS 2026: в 8.641 репозитории Lovable с полной историей 11,2% правил чтения были открыты для посетителей без входа, а в 61,2% репозиториев было хотя бы одно такое правило. Повторная проверка подтвердила утечку в 353 из 400 выбранных репозиториев [5].
  • Escape (октябрь 2025): пассивное сканирование более 5.600 публичных приложений на платформах вроде Lovable, Base44 и Create.xyz нашло более 2.000 уязвимостей, более 400 раскрытых секретов и 175 случаев утечки персональных данных, включая медицинские записи, IBAN (идентификаторы банковских счетов), телефоны и адреса электронной почты [3].
  • CVE-2025-48757 (2025): сканирование, завершённое 21 марта 2025 года, нашло 303 точки доступа к базам данных в 170 из 1.645 проектов Lovable, примерно 10,3%, с недостаточными правилами на уровне строк [1].

Escape подчёркивает, что сканирование не выполняло никаких разрушительных действий, поэтому её цифры — нижняя граница; более глубокая проверка нашла бы больше [3]. Та же оговорка касается всех цифр здесь: исследования считают то, что было видно снаружи.

Тёмная стена исследовательского офиса с приколотыми карточками и распечатками абстрактных графиков, связанными красными нитями с одной точкой
Четыре независимых источника указывают на одно слабое место: данные, которые посторонний может прочитать или изменить.

Почему инструменты ИИ создают небезопасные приложения?

Потому что инструменты стремятся к работающему приложению, а правила безопасности зависят от бизнес-деталей, которые в промпте почти никогда не прописаны [4][11].

Работающий код легко проверить: страница загружается, кнопка нажимается. А кто может видеть каждую запись — это бизнес-решение, и если его никто не записал, инструменту приходится угадывать. Аудит 2026 года связывает уязвимости с восемью повторяющимися типами сбоев, сгруппированными в три ограничения агентов ИИ: память, цели и знания [4].

Широкие тесты моделей ИИ показывают тот же разрыв. Отчёт Veracode GenAI Code Security Report 2026 показал, что в её тестах примерно в 44% задач по генерации кода появлялась уязвимость безопасности [11]. Бенчмарк, на который ссылается AWS, показал, что лучшая из 12 конфигураций агентов правильно решила 57% задач, но лишь 11,8% — одновременно правильно и безопасно [10].

Кроме того, многие приложения на вайб-кодинге переносят безопасность в базу данных. Браузер обращается напрямую к размещённой базе, поэтому её правила — единственное, что стоит между посетителем и каждой строкой [1][6]. Если правил нет или они слишком широкие, любой, кто знает адрес, может запросить всё.

Какие 8 уязвимостей проверить в первую очередь?

Начните с уязвимостей, которые исследования находят чаще всего, в порядке возможного ущерба [1][3][4][5].

  1. Открытые правила базы данных: таблицы без защиты на уровне строк или с правилами, позволяющими любому посетителю читать все строки. Именно это стало причиной CVE-2025-48757 и находок ACM [1][5].
  2. Нарушение контроля доступа: вошедший пользователь открывает чужую запись, меняя идентификатор в адресе или запросе. Это крупнейшая категория аудита 2026 года [4].
  3. Секретные ключи в браузере: ключ secret или service_role от Supabase, платёжный ключ или ключ провайдера ИИ в клиентском коде. Escape нашла более 400 раскрытых секретов [3][6].
  4. Отсутствующая или слабая проверка входа: закрытые страницы или маршруты API, отвечающие без сессии. Ошибки аутентификации затронули 51,50% проверенных приложений [4].
  5. Инъекции: пользовательский ввод без проверки попадает в запросы к базе или в HTML; обнаружено в 54,00% проверенных приложений [4].
  6. Таблицы, открытые для записи: правила, позволяющие посетителям не только читать, но и добавлять или менять данные. В случае с CVE запрос без токена входа добавил запись с отметкой «оплачено» и пропустил шаг оплаты [1].
  7. Избыточные ответы: API, которые возвращают целые записи пользователей, адреса почты или токены, когда странице нужно только имя. Escape насчитала 175 случаев раскрытия персональных данных [3].
  8. Рискованный доступ агентов: агент для программирования с рабочими учётными данными может нанести реальный ущерб; в июле 2025 года агент удалил рабочую базу данных во время заморозки кода [10].

Уязвимости 1–4 покрывают большую часть того, чем пользуются внешние атакующие, поэтому проверьте их прежде всего.

Изометрический макет офисного здания в разрезе с красными слабыми местами: открытый сейф, ключи снаружи и калитка
Проверьте уязвимости, которые исследования находят чаще всего: от открытых правил базы данных и сломанного контроля доступа до секретных ключей в браузере.

Как проверить своё приложение на эти уязвимости?

Пользуйтесь приложением так, как это сделал бы атакующий: как посторонний, как второй пользователь и читая то, что получает браузер [1][4][5]. Ни один шаг не требует специальных инструментов.

  1. Создайте две тестовые учётные записи. Создайте запись под учётной записью A, скопируйте её адрес или идентификатор, войдите как B и попробуйте открыть, изменить и удалить её. Если получилось, контроль доступа нарушен [4].
  2. Повторите без входа. Откройте те же адреса в приватном окне без сессии. В случае с CVE удаления заголовка авторизации хватило, чтобы обойти все проверки [1].
  3. Следите за вкладкой «Сеть». В инструментах разработчика браузера просмотрите каждый запрос страницы и ответ на него. Ответы должны содержать только то, что нужно этому экрану, и никогда — чужие адреса почты или токены [3].
  4. Ищите ключи в коде страницы. Ищите строки, начинающиеся с sb_secret_, метку service_role или ключи провайдеров, например платёжные или ключи ИИ. Ключ publishable — это нормально; ключ secret — это авария [6].
  5. Проверьте правила каждой таблицы. В панели базы данных убедитесь, что защита на уровне строк включена для каждой таблицы, и прочитайте каждое правило простыми словами: кто может читать, кто может писать [7].
  6. Попробуйте странный ввод. Вставьте в каждую форму очень длинный текст, кавычки и HTML-теги и посмотрите, не ломается ли приложение и не показывает ли их как код [4].

Проверяйте только свои приложения или те, на проверку которых у вас есть разрешение. Не зондируйте чужие приложения без письменного разрешения.

Как исправить открытые правила Supabase и утёкшие ключи?

Включите защиту на уровне строк для каждой таблицы, пишите узкие правила, держите секретные ключи на сервере и заменяйте любой утёкший ключ [6][7][8].

  • Включите защиту на уровне строк везде. Руководство Supabase советует включать её на каждой таблице в доступной извне схеме [7]. После включения публичный ключ ни к чему не получает доступа, пока вы не добавите правила [7].
  • Отзовите права по умолчанию. В проектах, где их всё ещё выдают по умолчанию, новая публичная таблица создаётся с уже выданными всеми привилегиями для ролей без входа (anon) и с входом (authenticated), и добавление правил эти права не отзывает [7]. Отзовите их и верните каждой роли только необходимое [7].
  • Пишите правила для каждого пользователя. Правило для закрытой таблицы должно сверяться с идентификатором вошедшего пользователя, а не просто пускать любого вошедшего. Избегайте всегда истинных правил для чувствительных таблиц [2].
  • Держите секретные ключи на сервере. Ключ publishable в Supabase безопасен в браузере лишь потому, что его ограничивают правила на уровне строк; ключи secret и service_role обходят все правила и должны оставаться в серверном коде или защищённых переменных окружения [6].
  • Заменяйте утёкшие ключи. Если секретный ключ хоть раз попал в браузер или публичный репозиторий кода, замените его и отключите скомпрометированный, как советует руководство Supabase по ключам [6].

По состоянию на 15 ноября 2026 года документация Supabase сообщает, что старые ключи anon и service_role выводятся из употребления до конца 2026 года в пользу ключей publishable и secret [8]. Новые ключи secret возвращают ошибку (HTTP 401) при использовании в браузере, хотя утёкший ключ всё ещё можно использовать из других инструментов [6][8]. Переход сейчас — хороший повод проверить каждый ключ, который использует приложение.

Руки в перчатках вытачивают новый латунный ключ на станке, летят искры, старый стёртый ключ лежит рядом
Если секретный ключ хоть раз попал в браузер или публичный репозиторий, замените его и отключите скомпрометированный.

Встроенные сканеры безопасности находят всё?

Нет: сканеры платформ помогают, но ряд исследований показывает, что они пропускают самые важные правила [1][2][5].

В 2025 году исследователи, обнаружившие CVE-2025-48757, установили, что сканер Lovable проверял лишь наличие правила на уровне строк, а не его правильность [1]. В их бюллетене добавлено, что проверка Lovable при публикации отмечает таблицы без правил, но не показывает, достаточно ли строги правила [2]. Открытое правило такую проверку проходит.

Исследование ACM подтверждает это цифрами: даже скромная доля открытых правил — 6,3% по шести инструментам — оставила 56,9% репозиториев хотя бы с одной открытой таблицей, потому что одного открытого правила достаточно [5]. Авторы выпустили бесплатную программу проверки, которая отмечает такие правила до коммита [5].

Используйте сканеры как первый фильтр, а проверки с двумя учётными записями и без входа проводите сами. Таблица ниже сводит цифры вместе.

Безопасно ли пользоваться приложениями, которые другие создали вайб-кодингом?

Будьте осторожны со всем, что запрашивает персональные, медицинские или платёжные данные, ведь пользователи не видят, как приложение их защищает [3][4]. Среди раскрытых данных Escape нашла медицинские записи и IBAN (идентификаторы банковских счетов) [3].

Несколько простых привычек снижают риск. Используйте отдельный пароль для каждого нового приложения, чтобы утечка в одном не открыла другие; как это сделать, объясняет руководство Pouyam Password Managers Explained: How They Work and Whether They Are Safe («Менеджеры паролей: как они работают»). Сообщайте только те данные, которые нужны приложению, и выбирайте страницы оплаты известных платёжных сервисов, а не формы внутри приложения.

Главная ответственность лежит на создателях. Если вы публикуете приложение, которое хранит чужие данные, проводите описанные проверки перед запуском и после каждого крупного изменения, ведь одна новая функция может снова открыть закрытую уязвимость [4][5].

Безопасность приложений на вайб-кодинге: ключевые цифры исследований на 15 ноября 2026 года
ИсследованиеРезультатИсточник
Аудит 200 опубликованных приложений (2026)В 91,0% хотя бы одна уязвимость; 65,77% уязвимостей критические или высокиеarXiv
Тот же аудитНарушение контроля доступа в 64,00% приложений; инъекции 54,00%; аутентификация 51,50%arXiv
Исследование ACM CCS 2026В 61,2% из 8.641 репозитория Lovable есть открытое правило чтенияACM
Escape (октябрь 2025)Более 2.000 уязвимостей, более 400 секретов, 175 случаев утечки персональных данных в более чем 5.600 приложенияхEscape
CVE-2025-48757 (март 2025)303 точки доступа в 170 из 1.645 проектов LovableMatt Palmer
Veracode 2026Примерно в 44% задач по коду в тестах появлялась уязвимостьVeracode

Частые ошибки

  • Считать публичный ключ Supabase утечкой.

    Как правильно: Ключ publishable или anon публичен по замыслу; настоящий риск — отсутствие правил на уровне строк или ключ secret в коде браузера [1][6].

  • Проверять только под своей учётной записью.

    Как правильно: Проверяйте со второй учётной записью и без входа; нарушение контроля доступа было главной уязвимостью проверенных приложений [4].

  • Доверять сканеру, который сообщает, что защита на уровне строк включена.

    Как правильно: Читайте каждое правило; сканеры проверяли наличие правила, а не его строгость [1][2].

  • Удалить утёкший ключ из кода и на этом остановиться.

    Как правильно: Замените ключ и отключите скомпрометированный [6].

  • Давать агенту для программирования рабочие учётные данные.

    Как правильно: Используйте тестовые данные и ограниченные учётные данные, храните резервные копии; агент уже удалял рабочую базу данных [10].

Частые вопросы

Безопасны ли приложения, созданные вайб-кодингом?

По умолчанию нет; аудит 2026 года нашёл хотя бы одну уязвимость в 91,0% из 200 опубликованных приложений на вайб-кодинге [4].

Какая уязвимость чаще всего встречается в приложениях на вайб-кодинге?

Нарушение контроля доступа, то есть доступ пользователей к чужим данным; оно затронуло 64,00% проверенных приложений [4].

Что такое CVE-2025-48757?

Уязвимость в проектах, созданных в Lovable, при которой отсутствующие или слабые правила Supabase на уровне строк раскрывали данные; затронуты 170 из 1.645 проверенных проектов [1][2].

Безопасно ли помещать ключ anon от Supabase в приложение?

Да, если защита на уровне строк включена со строгими правилами; ключ secret или service_role никогда не должен быть в коде браузера [6][7].

Может ли проверка безопасности в Lovable заменить ручную?

Нет; сканеры проверяли, что правила существуют, а не насколько они строгие, поэтому проверьте ещё и с двумя аккаунтами [1][2].

Как проверить, не допускает ли моё приложение утечку данных?

Откройте записи другой учётной записи как второй пользователь и без входа и прочитайте, что возвращает вкладка «Сеть» [1][4].

Глоссарий

Защита на уровне строк (RLS)
Правила базы данных, определяющие, какие строки может читать или менять каждый пользователь [7].
Нарушение контроля доступа
Уязвимость, позволяющая пользователю видеть или менять чужие данные [4][9].
Ключ publishable
Ключ Supabase для кода браузера и приложений; он получает доступ только к тому, что разрешают правила на уровне строк [6].
Ключ secret
Серверный ключ Supabase с полным доступом, обходящий правила на уровне строк; он никогда не должен быть публичным [6].
CVE
Публичный идентификатор известной уязвимости, например CVE-2025-48757 [2].

Источники

  1. Statement on CVE-2025-48757 Matt Palmer · 2025-05-29
  2. CVE-2025-48757 Matt Palmer · 2025-05-29
  3. Methodology: How we discovered over 2k high-impact vulnerabilities in apps built with vibe coding platforms Escape · 2025-10-29
  4. Understanding the (In)Security of Vibe-Coded Applications arXiv
  5. POSTER: The Aggregation Gap: Row-Level Security Failures in Vibe-Coded Applications ACM CCS 2026
  6. API keys Supabase
  7. Row Level Security Supabase
  8. Migrating to publishable and secret API keys Supabase
  9. OWASP Top 10:2025 OWASP Foundation
  10. Can we ship a secure product with vibe coding? AWS Builder Center · 2026-11-10
  11. 2026 GenAI Code Security Report: AI Is Writing More of Your Code but Security Hasn’t Caught Up Veracode · 2026-07-28
Поделиться гайдом Telegram WhatsApp X
Лайков: 0

Комментарии

Топ комментарии

О команде Pouyam Редакционная политика

На Pouyam

Откройте Pouyam

Гайды — лишь один уголок Pouyam. Вот куда пойти дальше.

Быстрая навигация