The server always could send messages back to the client in case something happened (e.g. broadcasting transaction failed).
The vulnerability allowed the server to send any custom message, which resulted in the phishing message spread by a lot of malicious server.
as a SPV client Electrum always relies on full nodes (aka Electrum servers). one of these dependencies is the error messages that they return. the problem was on client side where it lazily handed over that message to GUI to show and GUI happened to be able to detect extra formatting and then represent a pretty message with extra formatting if it had any!
now, messages are hardcoded in client side so it first checks the received message against that and show it to the user. but there is a new problem now. not all error messages that core sends are known and sometimes you get an error message that isn't hardcoded in Electrum so user may now see an "Unknown message error" message.