ECDSA est malléable par conception, puisque (r, s) et (r, n − s) passent tous deux la vérification, et son encodage DER ajoute d’autres variantes quand les analyseurs acceptent des longueurs non minimales ou des entiers complétés par des octets de remplissage (ce que la règle DER stricte du BIP 66 de Bitcoin a interdit en 2015). EdDSA est malléable si un vérificateur omet de contrôler que S est inférieur à l’ordre du groupe. La malléabilité n’est pas une falsification : personne ne peut signer un nouveau message.
Elle pose problème lorsque la signature, ou un condensat qui la couvre, sert d’identifiant. Avant SegWit, les identifiants de transaction Bitcoin incluaient les signatures dans leur hachage : des tiers pouvaient donc modifier l’identifiant d’une transaction en attente (Mt. Gox a invoqué ce problème lorsqu’il a suspendu les retraits en février 2014). Les contrats intelligents qui mémorisent les signatures utilisées au lieu des nonces utilisés, et les API qui dédupliquent les requêtes par signature, échouent de la même façon.
Parades : encodages canoniques (DER strict, low-S, S inférieur à L), identifiants calculés à partir du contenu signé plutôt que de la signature, nonces explicites dans les charges utiles signées, et schémas fortement infalsifiables (strongly unforgeable) lorsqu’ils sont vérifiés strictement, comme Ed25519 et BIP-340.