Релиз утилиты curl 8.16

Релиз утилиты curl 8.16

10 сентября 2025 года состоялся релиз утилиты curl 8.16. Код проекта написан на языке C опубликован на GitHub под открытой лицензией curl (вариант лицензии MIT). Выпуск curl 8.0 состоялся в марте 2024 года.

Утилита curl предлагает возможность гибкого формирования сетевого запроса с заданием параметров cookie, user_agent, referer и любых других заголовков для HTTP/HTTPS. Помимо HTTPS, HTTP/1.x, HTTP/2.0 и HTTP/3 она поддерживает отправку запросов с использованием SMTP, IMAP, POP3, SSH, Telnet, FTP, SFTP, SMB, LDAP, RTSP, RTMP и других сетевых протоколов. Одновременно развивается библиотека libcurl, которая предоставляет API для задействования всех функций curl в программах на языках Си, Perl, PHP и Python.

В августе 2024 года автор curl Даниэль Стенберг объявил, что в открытый проект curl официально вошли наработки и разработчики wcurl вдобавок к trurl. Проект wcurl — это простая оболочка вокруг curl для лёгкой загрузки файлов без необходимости запоминать какие‑либо параметры.

Статистика этого релиза и всего проекта в рамках процесса разработки утилиты:

  • 270-й релиз;

  • 17 изменений;

  • 56 дней разработки (всего: 10 036);

  • 260 багов исправлено (всего: 12 538);

  • 453 коммита (всего: 36 025);

  • 2 новых функций public libcurl (всего: 98);

  • 0 новых опций curl_easy_setopt() (всего: 308);

  • 2 новых опции curl command line (всего: 272);

  • 76 контрибуторов, 39 новых (всего: 3 499);

  • 32 автора, 17 новых (всего: 1 410);

  • 2 исправления безопасности (всего: 169).

Основные изменения и дополнения в curl 8.16:

  • исправлена ошибка CVE-2025-9086 в обработчике пути cookie, которая могла привести к сбою в работе curl и перезаписать безопасный cookie небезопасным с тем же именем, если бы все планеты случайно выстроились в правильном порядке;

  • исправлена ошибка CVE-2025-10148 в реализации WebSocket, из‑за которой curl неправильно обновляла маску фрейма для каждого нового исходящего фрейма;

  • в консольную утилиту добавлена поддержка опции ‑follow;

  • в консольную утилиту добавлена поддержка опции ‑out‑null;

  • в консольную утилиту добавлена поддержка опции ‑parallel‑max‑host для ограничения количества одновременных подключений на каждый хост;

  • в опциях ‑retry‑delay и ‑retry‑max‑time теперь можно задавать десятичные доли секунды;

  • в консольную утилиту добавлена поддержка опций вида ‑longopt=value;

  • опция ‑w (‑write‑out) теперь поддерживает формат%time{};

  • libcurl теперь кеширует неудавшиеся разрешения имён;

  • улучшена поддержка RFC Happy Eyeballs;

  • минимальная требуемая версия mbedtls повышена до 3.2.0;

  • в libcurl добавлена функция curl_multi_get_offt(…);

  • минимальная версия TLS по умолчанию повышена до 1.2;

  • удалена поддержка msh3;

  • добавлена поддержка CURLOPT_READFUNCTION для WebSocket.

Источник: habr.com