security: /health и /raw_json логируют TOKEN-секрет в plaintext при неудачной авторизации #9
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Проблема
/health(api_server.py:938) и/raw_json(api_server.py:883) при неудачной авторизации логируют РЕАЛЬНЫЙ секрет-токен в открытом виде на уровне ERROR:Config['token']— это настоящийTOKENиз окружения. Любой лог-агрегатор/файл логов теперь содержит секрет в plaintext. Плюс{token}(присланный клиентом) тоже пишется целиком — при атаке перебором это шумит секрето-подобными строками в логах.Пре-существует (не введено PR #8 стадии 1 — тот diff тронул только
get_me-строку рядом). Вынесено в отдельный issue по указанию ревьюера (out-of-scope для стадии 1).Fix
expected: {Config['token']}из сообщения полностью (никогда не логировать ожидаемый секрет).{token}(например, первые/последние 4 символа или длина), а не писать целиком.grep "Config\['token'\]").Severity
Security — экспозиция секрета в логах. Не блокер рантайма, но реальная утечകа при доступе к логам.