Git: cómo falsificar un commit firmado y obtener la insignia 'Verified' en GitHub
Git Hash Chain Malleability

La firma de commits en Git se considera una garantía de que un hash identifica de forma única e inmutable el contenido firmado. Sin embargo, un nuevo estudio demuestra que esta premisa es falsa: un atacante sin acceso a la clave de firma puede crear un segundo commit distinto con el mismo árbol, los mismos metadatos y una firma válida, que muestra la insignia 'Verified' en GitHub, solo con un hash diferente. Esto es posible gracias a la maleabilidad inherente de las representaciones de datos en los commits. El artículo presenta tres métodos de ataque: inversión algebraica en ECDSA, inserción de subpaquetes OpenPGP no hasheados para RSA y EdDSA, y recodificación no canónica de longitudes DER en S/MIME. Los autores analizan las consecuencias para el bloqueo de commits, el pinning de dependencias y los sistemas de construcción reproducibles, y ofrecen herramientas de prueba de concepto.
Dado cualquier commit firmado, un atacante sin acceso a la clave de firma, y sin romper SHA2, puede producir un segundo commit distinto con un árbol idéntico, metadatos idénticos, una firma válida y una insignia 'Verified' de un Git Forge como GitHub, que difiere únicamente en su hash de commit.