РАЗРАБОТКА

Cloudflare исправила критическую уязвимость в библиотеке hyper — остановка повреждения изображений

Cloudflare нашли и исправили баг в библиотеке hyper, вызывавший повреждение изображений. Вопрос решён за 4 строки кода.

✍️ Редакция iTech News | 04.11.2025 | ⏱ 2 мин | Источник: Cloudflare Blog
Исправлена уязвимость в библиотеке hyper от Cloudflare

Cloudflare нашла и исправила баг в библиотеке hyper, который вызывал повреждение изображений, возвращаемых из сервиса Images. Уязвимость использовала состояние гонки и могла приводить к возврату изображений размером всего несколько сотен килобайт вместо положенных двух мегабайт. Для разработчиков это создает важный урок в отношении надежности и тестирования открытых библиотек.

Контекст исправления

Сервис Images от Cloudflare, построенный на Rust и работающий в среде Workers, использует библиотеку hyper для обработки клиентских запросов. В конце 2025 года была переработана интеграция, что значительно увеличило производительность, однако вскоре разработчики столкнулись с сообщениями о том, что запросы на преобразование изображений, особенно больших файлов, иногда завершались не успешно. Статус ответов при этом указывал на 200 (успех), но сами данные оказывались повреждены.

Шестинедельные поиски разработчиков Cloudflare привели к обнаружению состояния гонки в библиотеке hyper, влияющего на корректную передачу обработанных данных клиенту. Исправление оказалось простым — четыре строки кода решили проблему, но весь процесс стал важным напоминанием о том, как важно тестировать вероятность редких багов при разработке.

Подробности работы с библиотекой hyper

Библиотека hyper отвечает за управление соединениями и обработку запросов в рамках сервиса Images. Этот сервис позволяет разработчикам выполнять операции с изображениями, такие как трансформация и оптимизация, без необходимости отправки ответов в HTTP-протоколе. Например, можно подстраивать параметры для обработки изображений на лету, что облегчает создание сложных изменений.

Когда запрос поступает в hyper, он считывает данные через сокет. Успех выполнения запросов зависит от скорости, с которой происходит чтение данных с выходного буфера. Если читатель медленнее, чем запрашивается отправка данных, возникает вероятность заполнения буфера, что, в конечном итоге, и стало причиной проблемы с поврежденными изображениями.

Что это значит для разработчиков

Для разработчиков и компаний, использующих Cloudflare и библиотеку hyper, эта ситуация подчеркивает необходимость тщательного тестирования каждого компонента, особенно открытого кода. Уязвимость, которая казалось бы незначительной, может привести к неожиданным и критическим багам. Необходимо внимательно следить за обновлениями библиотек и тестировать изменения на предмет таких ситуаций, чтобы избежать потерь в производительности и доверии пользователей.

Следующий шаг для разработчиков — всеобъемлющий обзор своих процессов работы с библиотеками. Устойчивость и надежность систем должны стать крайней приоритетной задачей, особенно когда дело касается обработки пользовательских данных.

Поделиться: Telegram X LinkedIn