Un investigador de seguridad ha descubierto una vulnerabilidad crítica en algunos de los clientes de cifrado de correo electrónico más populares y ampliamente utilizados del mundo que usan el estándar OpenPGP y confían en GnuPG para encriptar y firmar digitalmente los mensajes.
La revelación llega casi un mes después de que los investigadores revelaran una serie de fallas, denominadas eFail, en PGP y herramientas de cifrado S/Mime que podrían permitir a los atacantes revelar correos electrónicos cifrados en texto sin formato, afectando una variedad de programas de correo electrónico, incluyendo Thunderbird, Apple Mail y Outlook.
El desarrollador de software Marcus Brinkmann descubrió que una vulnerabilidad de sanitización de la entrada, que denominó SigSpoof, hace posible que los atacantes falsifiquen firmas digitales con la clave pública o la identificación de clave de alguien, sin requerir ninguna de las claves privadas o públicas involucradas.
La vulnerabilidad, a la que se le ha asignado el código CVE-2018-12020, afecta a las aplicaciones de correo electrónico populares, incluidas GnuPG, Enigmail, GPGTools y python-gnupg. Afortunadamente ya existen los parches disponibles, así que actualice lo antes posible si Ud. utiliza alguno de estos clientes de correo electónico.
Según lo explicado por el investigador, el protocolo OpenPGP permite incluir el parámetro “nombre de archivo” del archivo de entrada original en los mensajes firmados o encriptados, combinándolo con los mensajes de estado de GnuPG (incluida la información de firma) en un único canal de datos (paquetes de datos literales) agregando una palabra clave predefinida para separarlos.
Durante el descifrado del mensaje, al final en el destinatario, la aplicación del cliente divide la información utilizando esa palabra clave y muestra el mensaje con una firma válida, si el usuario tiene habilitada la opción detallada en su archivo gpg.conf.
Sin embargo, el investigador encuentra que el nombre de archivo incluido, que puede tener hasta 255 caracteres, no se sanitiza adecuadamente con las herramientas que contienen la vulnerabilidad, lo que permite que un atacante “incluya alimentaciones de línea u otros caracteres de control”.
Brinkmann demuestra cómo este vacío se puede utilizar para inyectar mensajes de estado GnuPG arbitrarios (falsos) en el analizador de la aplicación en un intento de falsificar la verificación de firma y los resultados del descifrado del mensaje:
El ataque es muy poderoso y el mensaje ni siquiera necesita ser encriptado en absoluto. Un único paquete de datos literales (también conocido como “texto plano”) es un mensaje OpenPGP perfectamente válido y ya contiene el “nombre del archivo cifrado” utilizado en el ataque, aunque no haya sido cifrado.
El investigador también cree que la falla tiene el potencial de afectar una gran parte de nuestra infraestructura central que va más allá del encriptado de correo electrónico, debido a que “GnuPG no solo se usa para seguridad de correo electrónico sino también para respaldos seguros, actualizaciones de software en distribuciones y código fuente en sistemas de control de versiones como Git“.
Brinkmann también compartió tres pruebas de concepto que muestran cómo las firmas pueden ser falsificadas en Enigmail y GPGTools, cómo la firma y el cifrado pueden ser falsificados en Enigmail, así como también cómo se puede falsificar una firma en la línea de comando.