Ed25519 is a signature scheme where signatures are deterministic: given the same message, the same secret key, same public key, you always get the same signature (composed of two parts, traditionally called $R$ and S).
In the standard Ed25519 scheme (RFC 8032), the part $S$ depends on the secret key, the message, and the public key, but the part $R$ does not depend on the public key.
The vulnerability appears in implementations where the API for signing accepts the public key and secret key as separate inputs, without verifying that the public key corresponds to the secret key. In other words, someone can call the signing function with:
If the library uses the provided public key in the computation of $S$ but does not check that this public key is the true public key for that secret key, then an attacker can exploit that.
Specifically:
So the root problem is: allowing mismatched public key / secret key pairs in signature APIs and using the public key in the deterministic signature in a way that leaks info if public key is “wrong”.