FreeRDP до 3.29.0 (затронутые версии <= 3.28.0) содержит несколько недостатков проверки подлинности сертификата TLS в tls_verify_certificate(), tls_match_hostname() и x509_utils_get_dns_names(). Поскольку FreeRDP выполняет пользовательское сопоставление строк общего имени и DNS SAN вместо использования API-интерфейсов проверки подлинности OpenSSL с учетом длины, он (1) усекает значения DNS SAN во встроенных NUL-байтах (принимая, например, «victim.example\0.attacker.example» как «victim.example»), (2) принимает соответствующее общее имя даже при наличии несовпадающих записей DNS SAN и (3) принимает Целевые IP-литералы через сопоставление DNS/CN без сравнения сетей SAN iPAddress. В цепочке доверенных или ошибочно выданных сертификатов злоумышленник, способный предоставить такой сертификат, может обойти проверку личности сервера, ослабляя аутентификацию сервера TLS.
Показать оригинальное описание (EN)
FreeRDP before 3.29.0 (affected versions <= 3.28.0) contains multiple TLS certificate identity validation weaknesses in tls_verify_certificate(), tls_match_hostname(), and x509_utils_get_dns_names(). Because FreeRDP performs custom Common Name and DNS SAN string matching instead of using OpenSSL's length-aware identity validation APIs, it (1) truncates DNS SAN values at embedded NUL bytes (accepting e.g. 'victim.example\0.attacker.example' as 'victim.example'), (2) accepts a matching Common Name even when non-matching DNS SAN entries are present, and (3) accepts IP-literal targets via DNS/CN matching without comparing iPAddress SANs. Under a trusted or misissued certificate chain, an attacker positioned to present such a certificate can bypass server identity verification, weakening TLS server authentication.
Характеристики атаки
Последствия
Строка CVSS v4.0