Функция PEM_read_bio_ex() считывает PEM-файл из BIO и разбирает и декодирует "имя" (например, "СЕРТИФИКАТ"), любые данные заголовка и полез…
Функция PEM_read_bio_ex() считывает PEM-файл из BIO и разбирает и декодирует "имя" (например, "СЕРТИФИКАТ"), любые данные заголовка и полезные данные. Если функция выполняется успешно, то аргументы "name_out", "header" и "data" заполняются указателями на буферы, содержащие соответствующие декодированные данные. Вызов функции отвечает за освобождение этих буферов. Возможно создать PEM-файл, который приводит к нулевому количеству полезных данных. В этом случае PEM_read_bio_ex() вернет код ошибки, но запомнит аргумент заголовка указателем на буфер, который уже был освобожден. Если вызывающий также освободит этот буфер, произойдет двойное освобождение. Это, вероятно, приведет к сбою. Этим может воспользоваться злоумышленник, который имеет возможность предоставить злонамеренные PEM-файлы для разбора, чтобы осуществить атаку отказа в обслуживании. Функции PEM_read_bio() и PEM_read() являются простыми обертками вокруг PEM_read_bio_ex() и, следовательно, также непосредственно затронуты. Эти функции также вызываются косвенно многими другими функциями OpenSSL, включая PEM_X509_INFO_read_bio_ex() и SSL_CTX_use_serverinfo_file(), которые также уязвимы. Некоторые внутренние использования этих функций в OpenSSL не подвержены уязвимости, потому что вызывающий не освобождает аргумент заголовка, если PEM_read_bio_ex() возвращает код ошибки. Эти места включают функции PEM_read_bio_TYPE() и декодеры, введенные в OpenSSL 3.0. Командное приложение OpenSSL asn1parse также затронуто данной проблемой.
Продукт вызывает free() дважды для одного и того же адреса памяти.
https://cwe.mitre.org/data/definitions/415.html →Открыть в коллекции CWE →| Продукт | Вендор | Статус |
|---|---|---|
| edk2 | Отслеживается | |
| edk2 | Отслеживается | |
| edk2 | Отслеживается | |
| edk2 | Отслеживается | |
| edk2 | Отслеживается | |
| edk2 | Отслеживается | |
| edk2 | Отслеживается | |
| edk2 | Отслеживается | |
| edk2 | Отслеживается | |
| edk2 | Отслеживается | |
| edk2 | Отслеживается | |
| edk2 | Отслеживается | |
| edk2 | Отслеживается | |
| edk2 | Отслеживается | |
| jbcs-httpd24-openssl | Отслеживается | |
| jbcs-httpd24-openssl | Отслеживается | |
| jws5-tomcat-native | Отслеживается | |
| jws5-tomcat-native | Отслеживается | |
| jws5-tomcat-native | Отслеживается | |
| nodejs | Отслеживается |