Библиотека Leancrypto — это криптографическая библиотека, которая содержит только криптографические алгоритмы, устойчивые к PQC. До версии 1.7.1 lc_x509_extract_name_segment() преобразует size_t vlen в uint8_t при сохранении длины общего имени (CN). Злоумышленник, создающий сертификат с CN = CN жертвы + заполнение 256 байт, получает cn_size = (uint8_t)(256 + N) = N, где N — длина CN жертвы.
Первые N байтов CN злоумышленника представляют собой личность жертвы. После анализа сертификат злоумышленника имеет CN, идентичный сертификату жертвы, что позволяет олицетворять личность при проверке PKCS#7, сопоставлении цепочки сертификатов и подписании кода. Эта проблема исправлена в версии 1.7.1.
Показать оригинальное описание (EN)
The leancrypto library is a cryptographic library that exclusively contains only PQC-resistant cryptographic algorithms. Prior to version 1.7.1, lc_x509_extract_name_segment() casts size_t vlen to uint8_t when storing the Common Name (CN) length. An attacker who crafts a certificate with CN = victim's CN + 256 bytes padding gets cn_size = (uint8_t)(256 + N) = N, where N is the victim's CN length. The first N bytes of the attacker's CN are the victim's identity. After parsing, the attacker's certificate has an identical CN to the victim's — enabling identity impersonation in PKCS#7 verification, certificate chain matching, and code signing. This issue has been patched in version 1.7.1.
Характеристики атаки
Последствия
Строка CVSS v3.1