Перейти к содержимому

Утечка данных

Как произошла утечка

Откуда взялись опубликованные данные и почему собственная панель Exoliner оказалась к ним открыта.

Откуда взялись данные

  1. Экспорт панели (28 сентября 2026)

    Всё на этом сайте экспортировали через собственную панель модераторов Exoliner: аккаунты пользователей, логи запуска скриптов, переписки по тикетам в Discord, записи модерации и собственный снимок статистики панели. Экспорт сделали несколькими выгрузками с правами staff из более чем одного источника.

  2. Сопоставлено с более ранней утечкой (июнь 2025)

    Более старый экспорт базы данных Exoliner за июнь 2025 добавили, чтобы заполнить пробелы экспорта панели: тысячи email аккаунтов, Discord ID, привязанные Roblox ID, отметки о подтверждённом email и точные даты регистрации, которые теперь показаны на странице аккаунтов.

  3. Почему это оказалось возможным

    Независимая оценка безопасности панели и API Exoliner показала, что любой аккаунт со staff-рангом мог выполнять неаудируемые операции по всей платформе, без ограничений на экспорт и без оповещений аудита. Данные ниже относятся только к панели и API. В оценке отмечено, что в основном сайте есть другие проблемы, которые здесь не описаны.

Почему это оказалось возможным

Оценка не нашла для постороннего способа проникнуть внутрь. Описанная в ней уязвимость состоит в масштабе последствий: любой аккаунт со staff-рангом мог выполнять неаудируемые операции записи в конфигурацию всей платформы, в том числе такую, которая могла разом сломать экзекьютор у каждого пользователя.

1 критич.3 высок.5 средн.5 низк.
Объект оценки exoliner.wtf and api.serverside.plusДаты с 3 по 5 октября 2026Метод реверс-инжиниринг бандла, около 3,700 проверок эндпоинтов, nmap, nuclei по 13,742 шаблонам, анализ TLS и матрица обхода авторизации

Что обнаружила оценка

Каждая находка описана по оценке панели и API Exoliner. Основной сайт она не охватывает: в ней отмечено, что в нём есть другие проблемы.

Критический

1
  • Неаудируемая перезапись глобальных offsets

    C-1

    В оценке сообщается, что PUT /v1/staff/offsets принимал любой staff-токен без проверки на владельца и не оставлял записи в аудите. Одним запросом заменялись offsets, от которых зависит экзекьютор каждого пользователя. При проверке общее число offsets упало с 401 до 1 за один вызов, без предпросмотра, подтверждения или одобрения.

Высокий

3
  • Любой транскрипт поддержки доступен по ID

    H-1

    GET /v1/staff/tickets/{id}/transcript, как сообщается, отдаёт любой тикет по последовательному целочисленному номеру без проверки владельца и раскрывает личные переписки целиком, включая Discord ID пользователей и вложения.

  • Удаление скриптов доступно для staff

    H-2

    DELETE /v1/scripts/delete, как сообщается, возвращал успех на staff-токене без проверки владельца, что давало возможность удалить любой скрипт по ID без мягкого удаления и без записи в аудите.

  • Нет лимита запросов при полном переборе таблицы

    H-3

    В оценке сообщается, что всю таблицу пользователей, 13,483 записи, выгрузили за 135 запросов за 25 секунд, и ни разу не сработало ограничение частоты запросов.

Средний

5
  • Нет повторного подтверждения 2FA для привилегированных записей

    M-1

    Offsets, execute, strike, переключатели игр, максимум игроков, настройки AI-проверки, данные модерации и мут чата, как сообщается, принимают обычный bearer-токен, поэтому украденной сессии не нужен второй фактор.

  • Токены на 30 дней, принудительного отзыва нет

    M-2

    Токены, как сообщается, живут ровно 30 дней без эндпоинта обновления, а поле authVersion, которое позволило бы одним действием отозвать все сессии, возвращается, но на сервере не применяется.

  • Правила против обнаружения доступны для записи любому staff

    M-3

    Эндпоинты moderation-intel, где хранятся правила Exoliner против обнаружения, как сообщается, принимают создание и удаление от любого staff-аккаунта, поэтому эти правила можно отключить или испортить.

  • Удалённые личные сообщения раскрыты для staff

    M-4

    Эндпоинт аудита чата, как сообщается, раскрывает любому staff удалённые личные сообщения целиком: с текстом, ID адресата и сотрудником, который их удалил.

  • Раскрытие данных уровня staff

    M-5

    Staff-эндпоинты, как сообщается, выдают оценку выручки, точное распределение рангов, Discord ID, полный журнал модерации, а также задержки и число серверов по каждому месту.

Низкий

5
  • Слабая content-security-policy фронтенда

    L-1

    Политика фронтенда, как сообщается, разрешает unsafe-inline и unsafe-eval без nonce, поэтому любая уязвимость межсайтового скриптинга могла бы прочитать staff-сессию из локального хранилища.

  • Сломанный поиск пользователей

    L-2

    Каждый параметр поиска в эндпоинте пользователей, как сообщается, игнорируется, и всегда возвращается одна и та же нефильтрованная первая страница, поэтому staff может действовать не над теми аккаунтами.

  • Публичное раскрытие информации

    L-3

    Эндпоинты health и stats без авторизации, как сообщается, раскрывают аптайм и текущие итоговые значения, а одинаковые тела ответов 404 позволяют перебрать таблицу маршрутов.

  • Серверные ошибки из-за путаницы типов

    L-4

    Входные данные не строкового типа, как сообщается, вызывают необработанные ошибки 500 на нескольких эндпоинтах. Тела ошибок остаются чистыми, поэтому это скорее вопрос надёжности, чем раскрытия данных.

  • Дублирующее имя хоста бэкенда

    L-5

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

Удобнее искать по записям? Смотреть аккаунты