LINUX.ORG.RU

Уязвимость в cURL/libcurl при использовании HTTP/3 и wolfSSL (CVE-2025-5025)

 , , , ,

Уязвимость в cURL/libcurl при использовании HTTP/3 и wolfSSL (CVE-2025-5025)

0

4

Команда разработчиков curl выпустила обновление для устранения уязвимости CVE-2025-5025, оцененной как средней (Medium Severity).

Уязвимость проявляется при выполнении трех условий:

 
1. Используется TLS-библиотека wolfSSL
2. Соединение устанавливается по протоколу HTTP/3 (QUIC).
3. Включена функция безопасности certificate pinning (пиннинг публичного ключа сертификата сервера).

Проверка пиннинга не выполнялась. Это означает, что злоумышленник может провести атаку 'Атака посредника' (MITM-атака) и представить любой действительный сертификат, curl примет соединение, несмотря на несоответствие ожидаемого ключа. Это позволяет злоумышленнику перехватывать и модифицировать зашифрованный трафик.


Ей подвержены системы, где:


1. Установлена уязвимая версия curl/libcurl (8.5.0 - 8.13.0).
2. cURL специально скомпилирован с поддержкой wolfSSL.
3. Приложения или скрипты активно используют HTTP/3 и certificate pinning.

Рекомендуется:

1. Обновить curl до версии до 8.14.0 или выше.
2. Не использовать wolfSSL (а использовать, например, OpenSSL) (узнать бэкенд можно командой curl -V)
3. Если вы не используете HTTP/3 или не настраиваете certificate pinning, риски минимальны.
4. Временные меры (если обновление невозможно) — избегать использования связки HTTP/3 + certificate pinning в curl, собранном с wolfSSL.


Критичность уязвимости оценивается как Средняя (Medium Severity). Ее реальное воздействие на инфраструктуру ограничено так как:

1. wolfSSL. Большинство стандартных пакетов curl в основных дистрибутивах Linux (Debian/Ubuntu, RHEL/CentOS/Fedora, openSUSE, Arch) скомпилированы с OpenSSL (или GnuTLS) по умолчанию, а не с wolfSSL. Уязвимость проявляется только при использовании wolfSSL.
2. Большинство серверов и клиентов работают на HTTP/1.1 или HTTP/2 (TCP+TLS), для которых пиннинг с wolfSSL работал корректно.
3. Специфичность использования Certificate Pinning: Certificate pinning — это мера безопасности, не включенная по умолчанию. Ее сознательно настраивают только в определенных, часто высокозащищенных сценариях. Обычные скрипты curl для скачивания файлов или API-запросов ее не используют.
4. Требуется позиция MitM: Эксплуатация требует, чтобы злоумышленник имел возможность перехватывать трафик целевой системы. Это сложно в защищенных сетях.
5. Злоумышленнику нужен сертификат, который клиент сочтет доверенным, что обычно требует компрометации CA или иной атаки на инфраструктуру PKI.

Кто может быть уязвим:

1. Пользовательские системы или серверы, на которых специально собран curl/libcurl с поддержкой wolfSSL (например, для встраиваемых систем, IoT, или из-за лицензионных предпочтений).
2. Приложения, использующие эту специальную сборку libcurl с wolfSSL, устанавливающие соединения по HTTP/3 и явно настроившие certificate pinning.
3. Пользователи нишевых дистрибутивов или специализированных встраиваемых платформ, где wolfSSL выбран в качестве TLS-бэкенда по умолчанию.

Рекомендации для администрирующих ОС Linux:

1. Уязвимость очень специфична и не касается стандартных конфигураций.
2. Проверить бэкенд: Выполнить curl -V | grep -i ssl. Если видите OpenSSL, GnuTLS, NSS и т.д. (но не wolfSSL), уязвимость вас не касается.
3. Обновите пакет curl до последней доступной версии в вашем дистрибутиве.


CVE-2025-5025 — это специфичная и ограниченная уязвимость средней степени серьезности. Ее реальное влияние на типичную инфраструктуру крайне невелико из-за редкости использования wolfSSL в стандартных дистрибутивах.

На данный день разработчикам cURL не известно о действительном эксплойте на данную уязвимость. Также стоит отметить, что уязвимость касается именно утилиты cURL, а не библиотеки WolfSSL.

>>> CVE-2025-5025

★★★★★

Проверено: hobbit ()
Последнее исправление: CrX (всего исправлений: 12)
Ответ на: комментарий от splinter

Подтвердил. Но на будущее советую вместо тега [pre] пользоваться нумерованными списками, они в тексте выглядят более естественно.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

И пробелы нормально ставит и моноширинный шрифт не включает.

Aceler ★★★★★
()

Просто не тестировали данный случай. А теперь пофиксили и тестами обложили. Рабочий момент.

seiken ★★★★★
()

А для сектантов они даже специально «демотиватор» добавили:

This bug is not considered a C mistake. It is not likely to have been avoided had we not been using C.

seiken ★★★★★
()

Критичность уязвимости оценивается как Средняя (Medium Severity).

Чтобы воспользоваться уязвимостью, надо чтобы на сервере стояла экзотическая конфигурация и редкая библиотека, злоумышленник сидел в той же сети и мог сделать Mitm, злоумышленник должен скомпрометировать PKI.

И вот это они называют средняя критичность. Интересно, что тогда низкая — это когда вероятность эксплуатации вообще возможна только теоретически? )

Aceler ★★★★★
()
Ответ на: комментарий от seiken

А для сектантов они даже специально «демотиватор» добавили:

This bug is not considered a C mistake. It is not likely to have been avoided had we not been using C.

Эх, надо срочно писать альтернативу расту, с агентами ии, чтобы избежать таких ошибок - язык программирования должен иметь встроенные средства для покрытия всех возможных сценариев 😅

skyman ★★★★
()
Ответ на: комментарий от Aceler

И вот это они называют средняя критичность. Интересно, что тогда низкая — это когда вероятность эксплуатации вообще возможна только теоретически? )

там все сложно (с). Обычно вектор CVSS указывает заявитель/исследователь, тут естественно полагать, что чем больше попугаев, тем ты круче (ЧСВ потешить все дела, а в данном случае 2.5 косаря срубили даже), обычно с этим спорить бесполезно, потому что координаторы в лице MITRE или CERT анализом не занимаются, а только координацией, а вендор, очевидно, заинтересован в снижении очков, и тем самым выступает против исследователя, и поэтому спор относительно очков получается довольно бесполезным, ну а здесь еще автор cURL относится достаточно трепетно к своему детищу и считает, что проще поправить, чем спорить.

Чтобы воспользоваться уязвимостью, надо чтобы на сервере стояла экзотическая конфигурация и редкая библиотека, злоумышленник сидел в той же сети и мог сделать Mitm, злоумышленник должен скомпрометировать PKI.

если речь идет о каком-то серверном софте, то какой-либо уязвимости здесь нет совсем: мало того, что какие-то довольно специфичные предусловия должны быть соблюдены, так еще и софт должен уметь из вне принимать какие-то левые ссылки и их обрабатывать, что само по себе уже является уязвимостью (там чего только быть не может: и file:///, и mailto:, и внутренние адреса, и петабайты контента), речь идет исключительно о клиентском софте, где не контролируется ни пользовательский ввод, ни инфраструктура.

borisych ★★★★★
()
Последнее исправление: borisych (всего исправлений: 1)
Ответ на: комментарий от borisych

речь идет исключительно о клиентском софте, где не контролируется ни пользовательский ввод, ни инфраструктура.

Если злоумышленник скомпрометировал PKI, ну камон. У него есть куда более вкусные поверхности атаки.

Aceler ★★★★★
()
Ответ на: комментарий от Aceler

Если злоумышленник скомпрометировал PKI, ну камон. У него есть куда более вкусные поверхности атаки.

PKI - это лишь одна из поверхностей атаки, есть еще. Ну и certificate pinning уже давно считается злом: https://www.digicert.com/blog/certificate-pinning-what-is-certificate-pinning

borisych ★★★★★
()
Ответ на: комментарий от borisych

Кто бы сомневался, фирма торгующая сертификатами считает что самостоятельная их проверка - плохо, ведь тогда непонятно зачем нужна эта фирма.

firkax ★★★★★
()
Ответ на: комментарий от hobbit

мне казалось что слишком отдаляет текст от списка.

Это list:


  • Это пункт1
  • Это пункт2
  • Это пункт3



Это pre:
1) Это пункт1
2) Это пункт2
3) Это пункт3


В первом случае заголовок после которого идёт перечисление находится очень далеко от списка, тем самым теряется смысловая связь.
В случае с pre список и заголовок более сгруппированы и смысловая часть не теряется.

splinter ★★★★★
() автор топика
Ответ на: комментарий от seiken

А для сектантов они даже специально «демотиватор» добавили:

Ну, смысл того, что они написали: «Мы понятия не имеем как избегать такого рода баги, даже при использовании других ЯП». Что не совсем эквивалентно «not likely to have been avoided had we not been using C».

unC0Rr ★★★★★
()

Также стоит отметить, что уязвимость касается именно утилиты cURL, а не библиотеки WolfSSL.

  1. Не использовать wolfSSL (а использовать, например, OpenSSL) (узнать бэкенд можно командой curl -V)

Ну охренеть теперь…

luke ★★★★★
()
Ответ на: комментарий от firkax

Кто бы сомневался, фирма торгующая сертификатами считает что самостоятельная их проверка - плохо, ведь тогда непонятно зачем нужна эта фирма.

сильно сомневаюсь, что CA хоть как-то зарабатывают на наличии или отсутствии certificate pinning, а вот проблемы в духе:

  • достал лаптоп из кладовки, а там ничерта не работает
  • чтобы что-то работало нужно постоянно обновлять ПО, а в каких-то случаях еще и железо

они вполне себе не иллюзорные

borisych ★★★★★
()
Ответ на: комментарий от borisych

Так они стараются чтобы и дальше этот аспект на них не сказывался. А то вдруг всякие банки решат перейти на сохранённые в браузере сертификаты вместо их CA, вот тут то уже будет потеря доходов.

Обоснования, конечно, придумывают выглядящие достоверными, иначе кто же им поверит.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)

Уязвимость проявляется при выполнении трех условий

Яснопонятно. Еще и wolfSSL какой-то.

Конпелять уязвимость тоже от рута надо небось?

Gonzo ★★★★★
()
Последнее исправление: Gonzo (всего исправлений: 1)
Ответ на: комментарий от splinter

Ты что то не так делаешь.

  1. У меня
  2. интервал нормальный
Werenter ★★★
()
Ответ на: комментарий от Aceler

надо чтобы на сервере стояла экзотическая конфигурация

Уязвимость как раз про эту конфигурацию. В других - уязвимости нет.

злоумышленник сидел в той же сети

Сплошь и рядом в датацентрах.

и мог сделать Mitm

Mitm можно сделать инжектированием трафика. То есть достаточно быть в одной сети с пакетами между A и B.

LamerOk ★★★★★
()
Ответ на: комментарий от splinter

В первом случае заголовок после которого идёт перечисление находится очень далеко от списка,

Ты как-то криво написал.

Это list:
1. Это пункт1
1. Это пункт2
1. Это пункт3

Даёт:

Это list:

  1. Это пункт1
  2. Это пункт2
  3. Это пункт3
LamerOk ★★★★★
()
Ответ на: комментарий от skyman

язык программирования должен иметь встроенные средства для покрытия всех возможных сценариев 😅

Это уже не язык программирования - это русский матерный :)

DrRulez ★★★★★
()
Ответ на: комментарий от firkax

Кто бы сомневался, фирма торгующая сертификатами считает что самостоятельная их проверка - плохо, ведь тогда непонятно зачем нужна эта фирма.

еще со времен скандала с сумантеком задаюсь этим вопросом.

DrRulez ★★★★★
()

Очень хорошо, что обновили. На зонды четырежды плевать, но вот вернувшуюся остоюбилеевшая curlftpfs'овая проблемка с пробелами в именах файлов пофиксилась обратно)

piyavking ★★★★★
()
Ответ на: комментарий от borisych

По описанию выглядит так, что надо чтобы кто-то написал прогу с использованием curl в качестве http клиента, включил пининг сертификата и не проверил эту функцию при передаче в прод. Выглядит довольно экзотично. Либо же curl собран динамической либой и при тестировании использовалась сборка curl без wolfssl, а у пользователя curl собран с wolfssl. Тогда уже более реально

cobold ★★★★★
()
Последнее исправление: cobold (всего исправлений: 1)
Ответ на: комментарий от borisych

тут надо бы напомнить, что wolfSSL позиционирует себя как более оптимизированное по производительности и защищенности по сравнению с OpenSSL, это как musl по сравнению с glibc. Так же, в новости говорится о том, что данная связка может быть выжата как параноидальная, - «Ее сознательно настраивают только в определенных, часто высокозащищенных сценариях.» А curl, хотя и написано, что обычно не использую, скорее всего используется как отладка для ТП, или в качестве healthcheck. Т.е. думаю, пострадать могут те, кто вроде бы и вкопался на самый максимум в землю.

splinter ★★★★★
() автор топика
Последнее исправление: splinter (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.