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.
Imagine you have
Permission to post as [email protected]
as an object that is locked in a safe deposit box, the key isJWT token
.The key, by how it works, can be obtained by (1) knowing [email protected]’s password (+2FA token if configured) (2) have a copy of the token (3) somehow cheat lemmy.world’s authentication scheme (by somehow skipping authentication or acquiring magic tool to generate random token … etc).
What happened today is scenario (2), by a single line of JavaScript planted by hacker, and if you have access to my unlocked desktop computer, you can see and copy the key by using F12 (developer tool).
Scenario (2) can be mitigated by tying the sending computer IP to
JWT token
, but as far as I can tell lemmy.world doesn’t have the option, and most of people get random new IP address every now and then because how Internet currently operates, so this feature can be very annoying.now introduce
Permission to post PGP signed message as [email protected]
as an object that is locked in a safe deposit box, this deposit box has two key slot (like a bank deposit box),JWT token
andPGP private key
.This
PGP private key
doesn’t have to sit in your browser, it can be on a burner phone which it’s only purpose is a APP for signing message, it can be on a USB thumb drive that is stored in your parent’s basement, or usb thumb drive that sits in bank deposit box which requires a bank employee to authenticate your ID to access…