CVE-2022-4450 in Fujitsu M10-1
Resumen
por VulDB • 2026-05-16
La función PEM_read_bio_ex() lee un archivo PEM desde un BIO y analiza y decodifica el "nombre" (por ejemplo, "CERTIFICATE"), cualquier dato de cabecera y los datos de carga útil. Si la función tiene éxito, los argumentos "name_out", "header" y "data" se rellenan con punteros a búferes que contienen los datos decodificados relevantes. El responsable de liberar dichos búferes es el llamador. Es posible construir un archivo PEM que resulte en 0 bytes de datos de carga útil. En este caso, PEM_read_bio_ex() devolverá un código de error, pero rellenará el argumento header con un puntero a un búfer que ya ha sido liberado. Si el llamador también libera este búfer, se producirá un doble free (liberación doble). Esto muy probablemente provocará un bloqueo (crash). Esto podría ser explotado por un atacante que tenga la capacidad de proporcionar archivos PEM maliciosos para su análisis, con el fin de lograr un ataque de denegación de servicio.
Las funciones PEM_read_bio() y PEM_read() son simples envoltorios (wrappers) alrededor de PEM_read_bio_ex(), por lo que estas funciones también se ven afectadas directamente.
Estas funciones también son llamadas indirectamente por varias otras funciones de OpenSSL, incluidas PEM_X509_INFO_read_bio_ex() y SSL_CTX_use_serverinfo_file(), que también son vulnerables. Algunos usos internos de OpenSSL de estas funciones no son vulnerables porque el llamador no libera el argumento header si PEM_read_bio_ex() devuelve un código de error. Estas ubicaciones incluyen las funciones PEM_read_bio_TYPE(), así como los decodificadores introducidos en OpenSSL 3.0.
La aplicación de línea de comandos asn1parse de OpenSSL también se ve afectada por este problema.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.