Заголовок X-HTTP-Method-Override до сих пор поддерживается многими бэкенд-фреймворками — из соображений обратной совместимости. Разберём типовые кейсы ⤵️
1️⃣ Broken Function Level Authorization
Типовой кейс: пользователь может читать, удалять — только админ.
Проверка:
✅ Отправляешь
GET✅ Добавляешь
X-HTTP-Method-Override: DELETEЕсли бэкенд доверяет заголовку больше, чем реальному HTTP-методу — получишь выполнение запрещённого действия без нужных прав.
2️⃣ Cache Poisoning
Если сервер учитывает
X-HTTP-Method-Override, и при этом кеширует ответы, обязательно:✅ Перебирай все HTTP-методы через override
✅ Смотри, какой вариант уходит в кеш
Можно получить:
🟠 Неконсистентные ответы
🟠 Кешированное состояние с повышенными правами
🟠 Неожиданные побочные эффекты для других пользователей
3️⃣ Vertical Privilege Escalation
Классический сценарий: employee → manager / admin. Даже если роут защищён по ролям, middleware проверяет HTTP-метод.
Ошибка возникает, когда:
🟠 ACL смотрит на
GET🟠 Бизнес-логика исполняет
DELETE / PUT из override-заголовка.4️⃣ Байпас JWT аутентификации
В официальном advisory от Google Cloud Platform описан показательный баг в Extensible Service Proxy v2:
🟠 ESPv2 корректно проверял оригинальный HTTP-метод
🟠 Бэкенд-апстрим обрабатывал метод из X-HTTP-Method-Override
🟠 В результате — рассинхронизация авторизации и исполнения


