The vulnerability is a denial-of-service caused by panics in the Ed25519 multisig delinearization code. The root cause is the use of .unwrap() on Option types returned from curve point decompression operations. When a user provides a 32-byte public key that is not a valid point on the Ed25519 curve, the decompression fails, returning None. The subsequent .unwrap() call triggers a panic, crashing the application. The primary vulnerable function is Ed25519PublicKey::delinearize, which directly contains an unsafe .unwrap(). A secondary panic exists in the From implementation for the Commitment struct for the same reason. Several other functions, such as DelinearizedPublicKey::sum_delinearized and CommitmentsBuilder::build, are part of the vulnerable call stack and were patched to propagate errors instead of panicking. The fix involves replacing .unwrap() calls with proper error handling by changing the function signatures to return a Result type.