Все уязвимости

CVE-2024-7264

curl: ошибка чтения даты сертификата в отдельных сборках

Ошибка разбора даты в сертификате могла завершить процесс curl или вернуть приложению часть памяти. Применимость зависит не только от версии curl, но и от TLS-библиотеки. Проверьте конкретную сборку и обновите её.

Проверено 26 октября 2026Low — низкая тяжесть по шкале curl. Производитель отмечает неопределённость достижимости ошибки после проверки сертификата используемой TLS-библиотекой. Это не доказательство невозможности эксплуатации и не оценка доступности конкретного сайта.

Кому нужно проверить

Администраторам программ, которые получают данные по HTTPS через curl, и разработчикам приложений с libcurl. Особенно важно проверить сборки Windows и другие окружения, где curl может использовать не OpenSSL. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.

В чём риск

Сертификат сообщает клиенту сведения о сервере, включая срок действия. TLS — механизм защищённого соединения — сначала проверяет сертификат своей библиотекой. Затем libcurl может дополнительно разобрать его поля для приложения. Ошибка в обработке некорректной даты позволяла прочитать данные за границей выделенного участка памяти. Наиболее вероятный результат по advisory — падение процесса. При использовании CURLINFO_CERTINFO часть памяти могла вернуться вызывающему приложению. Это не равнозначно автоматической передаче этой памяти удалённому серверу и не подтверждает выполнение кода.

Затронутые версии

Общий диапазон upstream — curl/libcurl 7.32.0–8.9.0, но для актуальных на момент advisory TLS-библиотек начало различается: GnuTLS с 7.42.0, Schannel с 7.50.0, Secure Transport с 7.79.0, mbedTLS с 8.9.0. Изначально код использовал позднее исключённый GSKit. Сборки с другими TLS-библиотеками, включая OpenSSL, этой ошибкой не затронуты. Дефект достигается после успешного TLS-согласования: если TLS-библиотека отвергла некорректную дату раньше, ошибка libcurl не срабатывает.

Исправленные версии

Первое исправление — curl/libcurl 8.9.1. Advisory предупреждает, что окончательный патч дополняет предыдущую неполную попытку исправления. Для пакета поставщика сверяйте именно закрытие CVE-2024-7264; старый номер может сохраняться после backport. Выбирайте поддерживаемое обновление, а не исторический минимум 8.9.1 как универсальную цель.

Что сделать

  1. 1Проверьте версию curl и название TLS-библиотеки в окружении сетевого задания. Сохраните результат во внутреннем учёте. Для приложения с собственной libcurl отдельно запросите сведения о его сборке: системный curl может быть совсем другим.
  2. 2Сопоставьте сборку с диапазоном именно её TLS-библиотеки. Разработчику следует проверить использование сведений о сертификате и CURLINFO_CERTINFO. Не испытывайте рабочий процесс повреждёнными сертификатами и не отключайте проверку сертификатов ради воспроизведения.
  3. 3Запланируйте обновление пакета или приложения до поддерживаемого исправленного выпуска. Сохраните конфигурацию доверенных сертификатов и резервную копию данных задания. На тестовой копии проверьте обычные HTTPS-соединения, внутренние центры сертификации и корпоративный прокси, если он используется.
  4. 4Производитель допускает сборку с незатронутой TLS-библиотекой. Рассматривайте её только как альтернативу для специалистов: смена библиотеки может изменить доверенные сертификаты и совместимость. Без готовой проверенной сборки безопаснее временно ограничить затронутые обращения, чем самостоятельно менять TLS в рабочем приложении. Ограничение адресов не устраняет дефект.
  5. 5Разверните обновление и перезапустите потребителей старой libcurl. Для статически включённой библиотеки пересоберите приложение. Заранее подготовьте восстановление предыдущего образа; если он уязвим, не возвращайте неограниченную обработку внешних сертификатов.
  6. 6Повторите штатные обращения и подтвердите версию реально работающей сборки. Проверьте журналы падений и обработку сведений о сертификате. Не публикуйте дампы памяти: в них могут быть секреты. Отсутствие прежних падений не заменяет обновление.

Почему проверки номера curl недостаточно

Нужна затронутая версия конкретной сборки curl. Дополнительный разбор libcurl может прочитать память за границей поля.

  1. 1Нужна затронутая версия конкретной сборки curl.
  2. 2Сборка должна использовать затронутую TLS-библиотеку.
  3. 3Первичная проверка должна пропустить некорректное поле даты.
  4. 4Дополнительный разбор libcurl может прочитать память за границей поля.

Примеры конфигурации и проверки

Посмотреть версию и TLS-библиотеку curl (shell)
curl -q --version

Терминал Linux/macOS с curl; выполняйте без sudo внутри проверяемого окружения. В первой строке ожидаются curl, libcurl и сведения о TLS-библиотеке, например OpenSSL или GnuTLS. -q первым аргументом исключает стандартный файл настроек. Сетевого запроса и изменения файлов нет, откат не требуется. Сведения относятся к этому исполняемому файлу; для сборок с выбором TLS-библиотеки во время работы и для встроенной libcurl уточните фактически выбранную библиотеку у разработчика. Номер версии не показывает backport-патчи.

Как не подпустить ботов к сайту

BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.

Первоисточники

Снизьте шанс атаки до того, как бот дойдёт до сайта

Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.