CVE-2025-47917: Use After Free
Mbed TLS before 3.6.4 allows a use-after-free in certain situations of applications that are developed in accordance with the documentation. The function mbedtlsx509stringtonames() takes a head argument that is documented as an output argument. The documentation does not suggest that the function will free that pointer; however, the function does call mbedtlsasn1freenameddatalist() on that argument, which performs a deep free(). As a result, application code that uses this function (relying only on documented behavior) is likely to still hold pointers to the memory blocks that were freed, resulting in a high risk of use-after-free or double-free. In particular, the two sample programs x509/certwrite and x509/certreq are affected (use-after-free if the san string contains more than one DN).
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2025-47917?
CVE-2025-47917 is categorized as a use-after-free vulnerability, which may lead to potential memory corruption issues.
How do I fix CVE-2025-47917?
To fix CVE-2025-47917, upgrade Mbed TLS to version 3.6.4 or later.
What is the affected software for CVE-2025-47917?
CVE-2025-47917 affects Mbed TLS versions prior to 3.6.4.
What specific function is involved in CVE-2025-47917?
The involved function in CVE-2025-47917 is mbedtls_x509_string_to_names(), which improperly handles its head output argument.
What can be the consequences of CVE-2025-47917?
The consequences of CVE-2025-47917 may include application crashes or potential exploitation leading to arbitrary code execution.