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

CVE-2024-6874

libcurl macOS: чтение за границей буфера при преобразовании IDN

Проверьте libcurl 8.8.0, собранную с macidn — системной IDN-библиотекой Apple. Имя ровно 256 байт могло вызвать чтение соседней памяти; обновите до 8.9.0. Командный curl этим путём не затронут.

Проверено 3 ноября 2026Low по шкале curl, CWE-126. Возможна выдача содержимого стека приложению; удалённое выполнение кода advisory не заявляет.

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

Разработчикам приложений Apple, использующим URL API libcurl для международных доменных имён. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.

В чём риск

Функция могла прочитать данные за пределами буфера и вернуть часть стека. Применимость требует конкретного API, длины имени и backend macidn.

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

Затронута только libcurl 8.8.0 с macidn на macOS, iOS и других системах Apple, когда URL API curl_url_get() преобразует punycode-имя длиной ровно 256 байт. Сборки с другими IDN-backend не затронуты; командный curl по advisory не использует этот путь.

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

Исправлено в libcurl 8.9.0; также возможны патч или другой IDN-backend. Смена backend требует проверки совместимости.

Что сделать

  1. 1Составьте список приложений с собственной libcurl и определите IDN-backend; версия командного curl недостаточна.
  2. 2Сохраните проект и lock-файлы, проверьте обновление на тестовой сборке с ASCII-доменами, IDN и ошибками преобразования.
  3. 3Обновите libcurl до 8.9.0 или пакет платформы, пересоберите и подготовьте возврат предыдущей исправленной сборки.
  4. 4Временно ограничьте преобразование непроверенных имён, если это безопасно; ограничение не заменяет обновление.
  5. 5После релиза подтвердите библиотеку и обработку ошибок; не публикуйте дампы памяти и входные имена.

Почему важны backend и длина имени

Обычный запрос curl не равен вызову URL API libcurl.

  1. 1Приложение вызывает curl_url_get() для IDN.
  2. 2Сборка использует macidn и имя длиной 256 байт.
  3. 3Буфер заполняется без завершающего нулевого байта.
  4. 4Функция может прочитать соседние данные стека.

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

Проверить системный curl (shell)
curl -q --version

Терминал проверяемого окружения, без sudo. Команда показывает системную сборку и не вызывает URL API; встроенная libcurl приложения может быть другой.

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

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

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

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

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