An issue was discovered in Mbed TLS before 2.24.0. The verification of X.509 certificates when matching the expected common name (the cn argument of mbedtlsx509crt_verify) with the actual certificate name is mishandled: when the subjecAltName extension is present, the expected name is compared to any name in that extension regardless of its type. This means that an attacker could impersonate a 4-byte or 16-byte domain by getting a certificate for the corresponding IPv4 or IPv6 address (this would require the attacker to control that IP address, though).
{
"binaries": [
{
"binary_name": "libmbedcrypto0",
"binary_version": "2.2.1-2ubuntu0.3"
},
{
"binary_name": "libmbedtls-dev",
"binary_version": "2.2.1-2ubuntu0.3"
},
{
"binary_name": "libmbedtls10",
"binary_version": "2.2.1-2ubuntu0.3"
},
{
"binary_name": "libmbedx509-0",
"binary_version": "2.2.1-2ubuntu0.3"
}
]
}
{
"binaries": [
{
"binary_name": "libmbedcrypto3",
"binary_version": "2.16.4-1ubuntu2"
},
{
"binary_name": "libmbedtls-dev",
"binary_version": "2.16.4-1ubuntu2"
},
{
"binary_name": "libmbedtls12",
"binary_version": "2.16.4-1ubuntu2"
},
{
"binary_name": "libmbedx509-0",
"binary_version": "2.16.4-1ubuntu2"
}
]
}