Парсер ASN1 в libcurl имеет функцию utf8asn1str(), используемую для разбора строки ASN.1 в кодировке UTF-8. Он может обнаружить недопустимо…
Парсер ASN1 в libcurl имеет функцию utf8asn1str(), используемую для разбора строки ASN.1 в кодировке UTF-8. Он может обнаружить недопустимое поле и вернуть ошибку. К сожалению, делая это, он также вызывает `free()` для 4-байтового локального стека. Большинство современных реализаций malloc обнаруживают эту ошибку и немедленно прерываются. Некоторые, однако, принимают указатель входных данных и добавляют эту память в свой список доступных фрагментов. Это приводит к перезаписи ближайшей памяти стека. Содержание перезаписи определяется реализацией `free()`; скорее всего, это будут указатели памяти и набор флагов. Наиболее вероятный исход эксплуатации этого недостатка — сбой, хотя нельзя исключать, что в особых обстоятельствах могут быть более серьезные последствия.
Продукт вызывает free() дважды для одного и того же адреса памяти.
https://cwe.mitre.org/data/definitions/415.html →Открыть в коллекции CWE →Продукт вызывает free() для указателя на память, которая не была выделена с помощью соответствующих функций выделения кучи, таких как malloc(), calloc() или realloc().
https://cwe.mitre.org/data/definitions/590.html →Открыть в коллекции CWE →| Продукт | Вендор | Статус |
|---|---|---|
| Отслеживается | ||
| curl | Отслеживается | |
| curl | Отслеживается | |
| curl | Отслеживается | |
| curl | Отслеживается | |
| curl | Отслеживается | |
| curl | Отслеживается | |
| curl | Отслеживается | |
| curl | Отслеживается | |
| libcurl | * | Отслеживается |
| Windows | Microsoft | Отслеживается |
| Windows | Microsoft | Отслеживается |
| Windows | Microsoft | Отслеживается |
| Windows | Microsoft | Отслеживается |
| Windows | Microsoft | Отслеживается |
| Windows | Microsoft | Отслеживается |
| Windows | Microsoft | Отслеживается |
| Windows | Microsoft | Отслеживается |
| Windows | Microsoft | Отслеживается |
| Windows | Microsoft | Отслеживается |