Исследователи UpGuard выявили 16 326 открытых баз Supabase, содержимое которых можно было прочитать через стандартный интерфейс доступа. Более чем в половине случаев названия и структура таблиц указывали на хранение персональной информации. Виновниками стали ошибки в конфигурации приложений — в том числе проектов, созданных при помощи ИИ-помощников.

Исследователи проанализировали около 300 тысяч доменов с признаками использования Supabase. Адрес проекта и публичный ключ часто находятся в открытом исходнике JavaScript, что позволило им проверить доступность данных. При поиске таблицы users интерфейс в некоторых случаях предлагал названия других открытых таблиц.

Сам публичный ключ в коде — не утечка. Supabase предусматривает такие ключи для браузера и мобильных приложений. Защиту данных должны обеспечивать роли и правила доступа на уровне базы. Если разработчик разрешил анонимной роли читать таблицу и не установил ограничения, любой с публичным ключом получит доступ ко всем строкам.

UpGuard не скачивала содержимое всех баз. При анализе 16 326 доступных экземпляров команда изучила структуру таблиц и названия полей. Больше половины баз содержали признаки персональных данных. Меньше случаев указывало на пароли и токены, ещё реже встречались поля, похожие на реквизиты банковских карт.

Несколько баз проверили детально. В сервисе для авторов взрослого контента нашли 65 467 записей пользователей — имена, почту, даты рождения, документы, платёжные реквизиты и более 100 тысяч личных сообщений. База сервиса одноразовых кодов содержала свыше 100 тысяч SMS, включая обычную переписку посторонних.

Открытая база парковочного сервиса раскрывала данные 100 тысяч клиентов: номера телефонов, адреса почты, номера машин, историю посещений и заметки. В другом проекте, помогающем переезжать в Канаду, нашли почти 5 тысяч записей, 884 пароля из которых хранились без шифрования. База консульской службы африканской страны содержала персональные и адресные данные 25 тысяч человек со сведениями о местах проживания. UpGuard уведомила владельцев проектов о критических утечках.

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

Supabase меняет настройки платформы. Таблицы в панели управления теперь получают построчную защиту по умолчанию, система предупреждает о незащищённых таблицах. С 30 мая 2026 года для новых проектов таблицы в открытой схеме не будут автоматически открыты для интерфейса доступа. Существующие проекты переведут принудительно 30 октября 2026 года, но уже созданные таблицы сохранят старые права.

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