Уязвимость подмены клиентского сертификата в приложениях, использующих libcurl с библиотекой Secure Transport на macOS
Описание
Приложения, использующие libcurl
, могут запросить использование определённого клиентского сертификата для передачи данных. Это достигается с помощью опции CURLOPT_SSLCERT
(или --cert
в командной строке).
Когда libcurl
собран с использованием встроенной в macOS библиотеки TLS (Secure Transport), приложение может запросить клиентский сертификат по его имени или с использованием имени файла, применяя одну и ту же опцию. Если указанное имя существует как файл, оно будет использовано вместо имени сертификата.
Если приложение работает в текущем рабочем каталоге, который доступен для записи другими пользователями (например, /tmp
), злоумышленник может создать файл с именем, совпадающим с именем сертификата, указанным приложением. Это может привести к тому, что приложение будет использовать сертификат из файла вместо сертификата, указанного по имени, что заставит libcurl
отправить неверный клиентский сертификат во время процесса установления TLS-соединения (handshake).
Затронутое ПО
- libcurl, использующий библиотеку Secure Transport на macOS.
Тип уязвимости
Подмена клиентского сертификата
Ссылки
- PatchThird Party Advisory
- ExploitThird Party Advisory
- Mailing ListThird Party Advisory
- Mailing ListThird Party Advisory
- Mailing ListThird Party Advisory
- Mailing ListThird Party Advisory
- Third Party Advisory
- Third Party Advisory
- Third Party Advisory
- PatchThird Party Advisory
- PatchThird Party Advisory
- PatchThird Party Advisory
- ExploitThird Party Advisory
- Mailing ListThird Party Advisory
- Mailing ListThird Party Advisory
- Mailing ListThird Party Advisory
- Mailing ListThird Party Advisory
- Third Party Advisory
- Third Party Advisory
- Third Party Advisory
Уязвимые конфигурации
Одно из
Одно из
Одновременно
Одновременно
Одновременно
Одновременно
Одновременно
Одновременно
Одновременно
Одно из
EPSS
7.5 High
CVSS3
5 Medium
CVSS2
Дефекты
Связанные уязвимости
libcurl-using applications can ask for a specific client certificate to be used in a transfer. This is done with the `CURLOPT_SSLCERT` option (`--cert` with the command line tool).When libcurl is built to use the macOS native TLS library Secure Transport, an application can ask for the client certificate by name or with a file name - using the same option. If the name exists as a file, it will be used instead of by name.If the appliction runs with a current working directory that is writable by other users (like `/tmp`), a malicious user can create a file name with the same name as the app wants to use by name, and thereby trick the application to use the file based cert instead of the one referred to by name making libcurl send the wrong client certificate in the TLS connection handshake.
libcurl-using applications can ask for a specific client certificate to be used in a transfer. This is done with the `CURLOPT_SSLCERT` option (`--cert` with the command line tool).When libcurl is built to use the macOS native TLS library Secure Transport, an application can ask for the client certificate by name or with a file name - using the same option. If the name exists as a file, it will be used instead of by name.If the appliction runs with a current working directory that is writable by other users (like `/tmp`), a malicious user can create a file name with the same name as the app wants to use by name, and thereby trick the application to use the file based cert instead of the one referred to by name making libcurl send the wrong client certificate in the TLS connection handshake.
libcurl-using applications can ask for a specific client certificate to be used in a transfer. This is done with the `CURLOPT_SSLCERT` option (`--cert` with the command line tool).When libcurl is built to use the macOS native TLS library Secure Transport, an application can ask for the client certificate by name or with a file name - using the same option. If the name exists as a file, it will be used instead of by name.If the appliction runs with a current working directory that is writable by other users (like `/tmp`), a malicious user can create a file name with the same name as the app wants to use by name, and thereby trick the application to use the file based cert instead of the one referred to by name making libcurl send the wrong client certificate in the TLS connection handshake.
EPSS
7.5 High
CVSS3
5 Medium
CVSS2