Сообщайте о проблемах безопасности приватно, а не через публичный issue. Почта для связи: katowica-security.untruth344@passinbox.com Опишите суть проблемы понятно и, по возможности, приложите шаги воспроизведения. Пожалуйста, не публикуйте сведения об уязвимости до выхода исправления или согласования раскрытия.
Этот проект взаимодействует с мессенджером Max. Max — российский сервис, развитие которого связано с российской инфраструктурой и регулируется законодательством РФ. Если для вас важны вопросы конфиденциальности, юрисдикции или обработки данных, учитывайте это при принятии решения об использовании проекта.
- Этот проект читает конфигурацию из локального файла
.env - Если утечёт любой токен (токен бота Max, токен доступа Matrix), немедленно отзовите его. Считайте утёкшие токены скомпрометированными независимо от того, использовались ли они.
- Привязка (linking). Мост создаётся, когда администратор чата Max запрашивает
одноразовый код, а участник комнаты Matrix отправляет
/max link <код>. Код — 10 символов из 32-символьного алфавита (~1e15 вариантов), с ограничением частоты и одноразовый. Знание кода — основная авторизация для привязки; отвязка дополнительно требует прав администратор Matrix (power level >= 50) либо владельца/администратора Max. УстановитеREQUIRE_MOD_TO_LINK=true, чтобы также требовать права администратор и для привязки. - White-list серверов.
MATRIX_ALLOWED_SERVERне является механизмом безопасности сам по себе. Он используется только как дополнительная проверка и не подтверждает, что комнате можно доверять. - Шифрование. Поддерживаются только незашифрованные комнаты Matrix. Состояние шифрования проверяется в момент привязки/приветствия. Включение шифрования после привязки остановит дальнейшую пересылку сообщений этой комнаты.
- Размер медиа. Скачивание/загрузка ограничены
MAX_DOWNLOAD_BYTES(по умолчанию 20 МиБ) в обоих направлениях; параллельные передачи ограничены семафором. - Хранимые данные. В SQLite хранятся: ожидающие коды привязки (с истечением срока), активные мосты, флаг «приветствие отправлено» для каждой комнаты и короткоживущая таблица идентификаторов пересланных событий с очисткой по TTL. Тексты сообщений и содержимое медиа не сохраняются..