MemOS — это операционная система памяти для LLM и агентов искусственного интеллекта. В развертываниях, где аутентификация включена (AUTH_ENABLED=true), но недокументированная, неиспользуемая по умолчанию переменная среды INTERNAL_SERVICE_SECRET не установлена, проверка is_internal_request() в src/memos/api/middleware/auth.py не открывается: os.getenv("INTERNAL_SERVICE_SECRET") возвращает None и запрос опускает Заголовок X-Internal-Service также возвращает None, поэтому сравнение None == None оценивается как истинное. Затем запрос обрабатывается как доверенный внутренний субъект и ему предоставляются области действия: ["все"].
В результате неаутентифицированный удаленный злоумышленник может получить доступ к конечным точкам управления ключами API администратора, чтобы создать ключи API для любого пользователя, перечислить ключи, отозвать ключи и сгенерировать главный ключ для постоянного привилегированного доступа, а также для всех конечных точек данных.
Показать оригинальное описание (EN)
MemOS is a memory operating system for LLMs and AI agents. In deployments where authentication is enabled (AUTH_ENABLED=true) but the undocumented, defaultless INTERNAL_SERVICE_SECRET environment variable is unset, the is_internal_request() check in src/memos/api/middleware/auth.py fails open: os.getenv("INTERNAL_SERVICE_SECRET") returns None and a request omitting the X-Internal-Service header also yields None, so the comparison None == None evaluates true. The request is then treated as a trusted internal principal and granted scopes: ["all"]. As a result, an unauthenticated remote attacker can reach the admin API-key management endpoints to mint API keys for any user, enumerate keys, revoke keys, and generate a master key for persistent privileged access, as well as all data endpoints.
Характеристики атаки
Последствия
Строка CVSS v4.0