Un fallo hallado en GnuPG abre la puerta a falsificar firmas digitales

Un fallo de seguridad hallado en GnuPG, Enigmail, GPGTools y python-gnupg permite a los hackers falsificar firmas digitales con una clave pública o la identificación de clave de un usuario, pudiendo hacer esto sin tener a disposición las claves privadas o públicas involucradas.

La vulnerabilidad (CVE-2018-12020), que fue descubierta por el investigador Marcus Brinkmann, ha sido descrita de la siguiente manera: “La rutina de verificación de firma en Enigmail 2.0.6.1, GPGTools 2018.2 y python-gnupg 0.4.2 analiza la salida de GnuPG 2.2.6 con una opción “–status-fd 2” que permite a los atacantes remotos falsificar firmas de forma arbitraria a través del parámetro “filename” (nombre de archivo) incrustado en los paquetes de datos literales de OpenPGP si el usuario tiene la opción ‘verbose’ establecida en su fichero gpg.conf.”

Esto quiere decir que el protocolo OpenGPG permite incluir el parámetro “filename” en el fichero de entrada original en los mensajes firmados o cifrados, combinándolo con los mensajes de estado de GPG (incluyendo la información de la firma) en un único canal de datos (por donde se transmite los paquetes de datos literales), añadiendo luego una palabra clave predefinida para separarlos. Werner Koch, principal encargado de GnuPG, ha dicho que esos “mensajes de estado son analizados por los programas para obtener información de GPG sobre la validez de una firma y otros parámetros.”

Durante el descifrado del mensaje que llega al destinatario, la aplicación del cliente divide la información utilizando la palabra clave y muestra el mensaje con una firma válida en caso de que el usuario tenga habilitada la opción “verbose” en el fichero de configuración gpg.conf. El investigador ha descubierto que el nombre del fichero incluido, que puede tener hasta 255 caracteres, no se sanitiza adecuadamente, permitiendo a un atacante incluir líneas adicionales u otros caracteres de control. El agujero de seguridad puede ser utilizado para inyectar mensajes de estado falsos y arbitrarios de GPG en un analizador de aplicaciones para falsificar la verificación de firmas y los resultados del proceso de descifrado del mensaje.

Es importante tener en cuenta que GPG no solo se utiliza para cifrar correo, sino que es empleado en muchos contextos y por muchas tecnologías, como herramientas de copias de seguridad, actualizaciones en distribuciones e incluso sistemas de control de versiones como Git. El investigador ha presentado tres pruebas de concepto en los que se muestra cómo se pueden falsificar firmas en Enigmail y GPGTools.

Para obtener las correcciones, hay que actualizar a GnuPG 2.2.8 o GnuPG 1.4.23, Enigmail 2.0.7, GPGTools 2018.3 y python-gnupg 0.4.3. En caso de ser desarrollador, se recomienda encarecidamente añadir “–no-verbose” en todas las invocaciones de GPG, mientras que las aplicaciones que usan GPGME como motor de cifrado son seguros, además de las aplicaciones que han sido compilados con el flag “–status-fd” establecido y “–verbose” sin establecer.

Fuente: The Hacker News

LEAVE A REPLY

Please enter your comment!
Please enter your name here