Free of Memory not on the Heap
CVE-2024-6197
Summary
libcurl's ASN1 parser has this "utf8asn1str()" function used for parsing an "ASN.1 UTF-8" string. It can detect an invalid field and return an error. Unfortunately, doing so also invokes "free()'" on a 4-byte local stack buffer. Most modern "malloc" implementations detect this error and immediately abort it. Some, however, accept the input pointer and add that memory to its list of available chunks. This leads to the overwriting of nearby stack memory. The content of the overwrite is decided by the "free()" implementation; likely to be memory pointers and a set of flags. The most likely outcome of exploiting this flaw is a crash, although it cannot be ruled out that more serious results can be had in special circumstances. This vulnerability affects curl package versions 8.6.0 through 8.8.0.
- LOW
- NETWORK
- NONE
- UNCHANGED
- NONE
- NONE
- NONE
- HIGH
CWE-590 - Free of Memory not on the Heap
The application calls free() on a pointer to memory that was not allocated using associated heap allocation functions such as malloc(), calloc(), or realloc().
References
Advisory Timeline
- Published