curl закрыл уязвимость в HTTP/2-загрузке после демонстрации выполнения кода на клиенте
Проект curl выпустил обновление 8.23.0, устраняющее уязвимость в обработке HTTP/2-загрузок. Проблема позволяет вредоносному серверу, принимающему файл, повредить память клиента, а исследователь, обнаруживший её, смог превратить это в выполнение кода на машине, откуда идёт загрузка. Уязвимость требует точного знания сборки и раскладки памяти клиента, и предполагаемая реальная атака, по мнению разработчиков, скорее приведёт к падению клиента, чем к компрометации.
Подробности
Уязвимость связана с тем, как curl обрабатывает HTTP/2-загрузки. Вредоносный сервер, получающий данные, способен манипулировать ответами таким образом, что это приводит к повреждению памяти на стороне клиента. Исследователь, обнаруживший проблему, разработал proof-of-concept (PoC), который превратил повреждение памяти в выполнение кода на атакующей машине — то есть на клиенте, который отправлял данные. Ключевое ограничение атаки: для успешного захвата клиента требуется точное знание его сборки и раскладки памяти. Это делает эксплуатацию в реальных условиях сложной и узкоспециализированной. Разработчики curl отмечают, что реальная атака, скорее всего, закончится падением (crash) клиента, а не полноценным выполнением кода. Исправление выпущено в curl 8.23.0 от 14 октября. Пользователям, работающим с HTTP/2-загрузками, рекомендуется обновиться до этой версии.Что делать
Обновите curl до версии 8.23.0 или более поздней. Если вы используете curl как библиотеку в своих приложениях, проверьте зависимости и пересоберите продукты с исправленной версией. Особое внимание стоит уделить сценариям, где curl отправляет данные на внешние или недоверенные серверы по HTTP/2 — именно этот вектор использовался в PoC. Если обновление невозможно в кратчайшие сроки, рассмотрите ограничение HTTP/2-загрузок на недоверенные узлы или временный переход на HTTP/1.1 в критичных сценариях до установки патча. Итог: уязвимость требует сложных условий для реальной эксплуатации, но её наличие и доказанная возможность выполнения кода делают обновление до curl 8.23.0 обязательным для всех, кто использует HTTP/2-загрузки.Источник: The Hacker News

