Услуги Портфолио Контакты БлогНовости +7 (800) 511‑32‑27 Обсудить проект
Безопасность

UpGuard нашла 16 326 баз Supabase, открытых на чтение всему интернету: в зоне риска — приложения, собранные ИИ-агентами

27 сентября 2026·5 мин чтения
SupabaseRow Level Security
UpGuard нашла 16 326 баз Supabase, открытых на чтение всему интернету

Коротко о главном

25 сентября 2026 года UpGuard опубликовала исследование: 16 326 баз данных на платформе Supabase отдают таблицы на чтение любому посетителю из интернета, и более чем в половине из них есть признаки персональных данных. Корень проблемы — выключенный Row Level Security (RLS) в таблицах, которые создают ИИ-агенты и вайб-кодинг-платформы. Если ваш продукт работает на Supabase, проверьте политики RLS сегодня.

Это не взлом и не уязвимость в самой платформе, а ошибка конфигурации, которая масштабируется вместе с популярностью инструментов быстрой разработки. Приложение, собранное за вечер, получает публичный ключ в клиентском коде и таблицы без правил доступа — и любой, кто откроет DevTools, может выгрузить базу. Мы закладываем модель прав на уровне базы с первого спринта, когда ведём backend-разработку, а для уже работающих продуктов проводим аудит кода приложения.

Ниже — что именно нашли исследователи, почему защита по умолчанию не срабатывает для кода от ИИ-агентов и какой короткий чек-лист закрывает проблему; если нужен внешний взгляд на весь периметр, поможет аудит информационной безопасности.

Что нашли исследователи UpGuard

Команда UpGuard просканировала около 300 000 доменов с признаками использования Supabase и отобрала проекты, у которых таблицы читаются без авторизации. Таких набралось 16 326. По оценке исследователей, более половины содержат персональные данные: имена, адреса, телефоны. В меньшей доле нашлись пароли и токены аутентификации, в единичных случаях — данные, похожие на номера банковских карт.

Примеры из отчёта показывают, что речь не о тестовых стендах, а о живых сервисах:

  • Сервис одноразовых кодов — контакты более 2 000 пользователей и свыше 100 000 SMS-сообщений.
  • Американский сервис парковки (valet) — телефоны более 100 000 клиентов, имена и email 43 000 человек и 78 000 госномеров автомобилей.
  • Сервис иммиграционного консультирования — 5 000 пользователей, из них 884 записи с паролями в открытом виде.
  • База консульства одной из африканских стран — 25 000 пользователей с адресами экстренного размещения.

По данным TechCrunch, среди находок также переписка пользователей стримингового сайта для взрослых в Индии и инфраструктура виртуальной SIM-фермы, которая перехватывала SMS для мошеннической верификации аккаунтов.

Почему защита по умолчанию не срабатывает

Supabase — это PostgreSQL с автоматически сгенерированным REST API. Клиентское приложение ходит в базу напрямую с публичным ключом (anon key), и единственный барьер между этим ключом и данными — политики Row Level Security на каждой таблице.

Таблицы, созданные вручную через Table Editor в веб-интерфейсе, получают включённый RLS по умолчанию — Supabase ввела это правило ещё в марте 2025 года. Но таблицы, созданные программно — SQL-миграцией или через API, — такой защиты по умолчанию не получают. Именно так с базой работают ИИ-агенты для программирования. UpGuard прямо называет Claude Code, Codex, Lovable и Replit среди инструментов, через которые Supabase попадает в новые проекты.

Вторая типичная ошибка — обращаться с публичным ключом как с секретным. Разработчик считает, что раз ключ «спрятан» в сборке, база защищена. На деле anon key виден любому, кто откроет вкладку Network в браузере.

Позиция Supabase

CISO Supabase Бил Хармер в комментарии TechCrunch заявил, что проекты платформы «защищены по умолчанию», а безопасность — это разделённая ответственность компании и клиентов. Формально это так: платформа даёт все инструменты, но ИИ-агент, который пишет миграцию, не обязан о них помнить. Вывод UpGuard звучит жёстче: масштаб утечек — это произведение того, насколько легко ошибиться в настройке технологии, на размер её аудитории.

Что проверить командам на Supabase прямо сейчас

  1. RLS на каждой таблице схемы public. Выполните запрос к pg_tables и найдите таблицы с rowsecurity = false. Каждой включите ALTER TABLE … ENABLE ROW LEVEL SECURITY.
  2. Политики, а не только флаг. Включённый RLS без политик закрывает таблицу полностью; политика USING (true) открывает её снова. Проверьте, что каждое правило привязано к auth.uid() или роли.
  3. Проверка извне. Возьмите anon key из собственного фронтенда и попробуйте прочитать таблицы через REST API без логина — так же, как это сделал бы атакующий.
  4. Ключ service_role — только на сервере. Он обходит RLS целиком. Если он попал в клиентский бандл, мобильное приложение или публичный репозиторий — немедленно ротируйте.
  5. Правило для ИИ-агентов. Добавьте в инструкции агента и в CI-проверку требование: любая новая таблица создаётся вместе с включённым RLS и политикой. Миграция без них не проходит ревью.
  6. Чувствительные поля. Пароли не должны лежать в пользовательских таблицах вообще — для этого есть встроенная аутентификация с хешированием.

Часто задаваемые вопросы

Это уязвимость Supabase? Нет. Речь об ошибках конфигурации в проектах клиентов: таблицы без политик доступа. CVE здесь нет, патч от вендора не решит проблему — исправлять нужно каждый проект.

Касается ли это приложений, написанных без ИИ? Да. ИИ-агенты лишь ускоряют появление таблиц без RLS, потому что создают их через SQL и API. Разработчик, который пишет миграции руками, попадает в ту же ловушку.

Как быстро понять, что моя база открыта? Попробуйте запросить любую таблицу через REST API Supabase только с публичным ключом, без токена пользователя. Если в ответе строки данных — база открыта.

Что делать, если данные уже были доступны? Закрыть доступ, ротировать ключи и пароли, проверить логи запросов и оценить, попадают ли утечки персональных данных под обязательное уведомление регулятора — в России это требование 152-ФЗ.

Источники

Проверим, что ваша база не читается снаружи

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

Заказать аудит кода
Материал подготовлен редакцией YuSMP Group по открытым источникам. Нужна экспертиза по теме или разработка под задачу — обсудим проект.