Use After Free Affecting mbedtls package, versions <3.6.4-r0


Severity

Recommended
low

Based on default assessment until relevant scores are available.

Threat Intelligence

EPSS
0.05% (16th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications

Snyk Learn

Learn about Use After Free vulnerabilities in an interactive lesson.

Start learning
  • Snyk IDSNYK-ALPINE322-MBEDTLS-10875975
  • published22 Jul 2025
  • disclosed20 Jul 2025

Introduced: 20 Jul 2025

NewCVE-2025-47917  (opens in a new tab)
CWE-416  (opens in a new tab)

How to fix?

Upgrade Alpine:3.22 mbedtls to version 3.6.4-r0 or higher.

NVD Description

Note: Versions mentioned in the description apply only to the upstream mbedtls package and not the mbedtls package as distributed by Alpine. See How to fix? for Alpine:3.22 relevant fixed versions and status.

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 mbedtls_x509_string_to_names() 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 mbedtls_asn1_free_named_data_list() 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/cert_write and x509/cert_req are affected (use-after-free if the san string contains more than one DN).