I was recently assessing a web application where during user registration the application would send a password reset link via email where the token portion of the URL was the following in base64:
<Email address>:<randomly generated 12 character password>
When selecting the link the application would log the user in and assign their Authorisation JWT before directing the user to set their own password.
Obviously, there are a few security concerns with this but I wanted to get a better idea of what the impact could be. Could it be assumed that the application is storing passwords in plaintext on the back-end database? It seems somewhat unlikely that the application is generating the random password, sending the password reset email, and then hashing the password and storing it in the database.
Ideally, when a password is set it should be hashed with a non-reversible algorithm and then stored in the database. When a user logs in, the password they provide is hashed and then compared with the hash in storage, dictating whether they authenticate or not.