While I was asleep, apparently the site was hacked. Luckily, (big) part of the lemmy.world team is in US, and some early birds in EU also helped mitigate this.
As I am told, this was the issue:
- There is an vulnerability which was exploited
- Several people had their JWT cookies leaked, including at least one admin
- Attackers started changing site settings and posting fake announcements etc
Our mitigations:
- We removed the vulnerability
- Deleted all comments and private messages that contained the exploit
- Rotated JWT secret which invalidated all existing cookies
The vulnerability will be fixed by the Lemmy devs.
Details of the vulnerability are here
Many thanks for all that helped, and sorry for any inconvenience caused!
Update While we believe the admins accounts were what they were after, it could be that other users accounts were compromised. Your cookie could have been ‘stolen’ and the hacker could have had access to your account, creating posts and comments under your name, and accessing/changing your settings (which shows your e-mail).
For this, you would have had to be using lemmy.world at that time, and load a page that had the vulnerability in it.
Passwords were leaked?
No, just browser session tokens if you loaded the site during the hack. And the tokens were reset after the site came back up.
Databases don’t store passwords to begin with so passwords can’t really be leaked. They store a hash of your password. So if your password is of sufficient length it could take 100s or 1000s of years to find a match to the hash. If you have a really short password or if the hash is using an insufficient hash algorithm then there exist these things called rainbow tables which are a list of every hash and it could simply be looked up what your password is.
Not all software developers follow those guidelines - either out of laziness or incompetence. Plenty of sites/companies have had password leaks due to improper storage. The best way to protect yourself is to use unique passwords for all accounts.
Based on what I read I’d say no. XSS usually just affects browsers or anything that runs JS so it mainly affects the client side. JWTs don’t (if following the spec) contain passwords, it’s just a short lived token that identifies someone. If you sent your password as a DM you’re dumb, and they got your password if they compromised your account.
Probably not, it seems only temporary “session” cookies (JWT) were leaked for those affected, so they were revoked for everyone. If you wanna feel safer, changing your password is a good idea “just in case”.