Post

The first vulnerability alone is awful! Clients don't require signatures on keys from the server and don't validate signatures if present, so the server can just lie about keys used to encrypt conversations. If the server can substitute participants, you don't have a secure messaging system.

Why was this code ever shipped?! This is from the second vuln, where keys' signatures aren't checked before they're stored in the trusted key store. Why would you ever ship a "TODO, actually validate signatures lol" in your secure messenger?!