
Я нашёл уязвимость нулевого дня в OpenClaw — вот как всё прошло
При просмотре исходного кода я сосредоточился на том, как OpenClaw обрабатывает HTTP-запросы — в частности, на функции fetchWithSsrFGuard(), которая отвечает за выполнение серверных fetch-вызовов.
Я заметил кое-что подозрительное.
Когда запрос следовал за междоменным редиректом (то есть сервер отправлял ответ 3xx, указывающий на другой домен), OpenClaw должен был удалять чувствительные заголовки перед пересылкой запроса на новый адрес. Он это делал — но только для узкого жёстко заданного дени-листа:
Authorization, Proxy-Authorization, Cookie, Cookie2
В чём проблема? Этот список неполный.
Пользовательские заголовки авторизации, такие как X-Api-Key, Private-Token или любые другие заголовки в стиле bearer, которые разработчики обычно используют, — ни один из них не удалялся. Они пересылались как есть на адрес редиректа.
Это означает: если злоумышленник мог контролировать или влиять на то, куда указывает редирект, он мог получить чувствительные учётные данные, которые никогда не предназначались для него.
Представьте, что ваше приложение использует OpenClaw для вызова внутреннего API с пользовательским заголовком X-Api-Key. Вредоносный сервер отвечает редиректом на URL, контролируемый злоумышленником. OpenClaw следует за редиректом — и пересылает ваш API-ключ прямо вместе с ним.
Игра окончена. Ваши учётные данные теперь в чужих руках.
Оценка CVSS 3.1: 9.3 (Критическая)
Сопровождающие заменили подход с дени-листом на разрешающий список безопасных заголовков. Вместо попытки блокировать известные плохие заголовки, новая логика пропускает через междоменные редиректы только известные безопасные заголовки — такие как согласование содержимого и валидаторы кэша. Всё остальное по умолчанию удаляется.
Это правильный подход. Безопасность на основе дени-листа хрупка; безопасность на основе разрешающего списка надёжна.
Ссылки
46715371b0612a6f9114dffd1466941ac476cef5<= 2026.3.2>= 2026.3.7Немедленно обновитесь до >= 2026.3.7.
Если вы используете пользовательские заголовки авторизации (например, X-Api-Key или Private-Token) и работали на более старой версии, считайте эти учётные данные потенциально скомпрометированными и замените их.