827
submitted 1 year ago* (last edited 1 year ago) by ruud@lemmy.world to c/lemmyworld@lemmy.world

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.

you are viewing a single comment's thread
view the rest of the comments
[-] Aux@lemmy.world 0 points 1 year ago

What's the difference? JWT is already cryptographically signed, but tokens were stolen. That's the issue.

[-] hunter2@lemmy.ml 0 points 1 year ago* (last edited 1 year ago)

PGP private keys are harder to steal than JWTs, as they are not generally stored as a long-term cookie but briefly just to sign something. Through XSS (the vulnerability in this case), cookies are relatively easy to steal, but to steal a PGP key would require a more complex script able to steal the key at the time it is loaded in the browser (assuming the signing feature is implemented in the browser). It's a bit more sophisticated, but not totally bulletproof.

[-] Aux@lemmy.world 0 points 1 year ago

First of all, it's still possible, as you said. Second, we must always take humans into consideration. Let me explain.

Most people don't know what PGP is, thus you can sign your posts with any crap and most won't care.

Out of those who know what PGP is and how to use it, most won't be checking the posts as they will auto-assume that if it's signed - it's ok.

There will be a small minority of those who care, but they can be silenced easily through social engineering.

It is possible to integrate server side signature checks, but then again you're vulnerable when someone gains unrestricted access to your account.

The correct solution requires multiple features to be implemented.

  1. Lemmy web UI should move to an industry standard framework, which disables XSS and other attack vectors by default. For example, Angular.
  2. Official admin announcement, as well as important admin tasks, should require 2FA on each action. Like it's done on GitHub, for example.
  3. Cookies should not contain JWT tokens, they should only cotain session id for read only purposes. JWT token should be moved to sessionStorage instead. It's a lot more secure by design than cookies. You can still exploit it, but it's noticeably harder.
[-] hunter2@lemmy.ml 1 points 1 year ago

Agree with the points on PGP and other features. I almost made a lengthier reply mentioning the signing issues, which seems appropriate now. It would not be easy, but a successful implementation would definitely need clients to automatically detect and verify signed content, due to the human issues you mention. A problem is obtaining public keys from a trusted source. Maybe it could be attached to profile information with a 2FA requirement to modify it. Just an idea. In this way, verification is not dependent on the user to perform.

this post was submitted on 10 Jul 2023
827 points (99.4% liked)

Lemmy.World Announcements

28381 readers
2 users here now

This Community is intended for posts about the Lemmy.world server by the admins.

Follow us for server news ๐Ÿ˜

Outages ๐Ÿ”ฅ

https://status.lemmy.world

For support with issues at Lemmy.world, go to the Lemmy.world Support community.

Support e-mail

Any support requests are best sent to info@lemmy.world e-mail.

Report contact

Donations ๐Ÿ’—

If you would like to make a donation to support the cost of running this platform, please do so at the following donation URLs.

If you can, please use / switch to Ko-Fi, it has the lowest fees for us

Ko-Fi (Donate)

Bunq (Donate)

Open Collective backers and sponsors

Patreon

Join the team

founded 1 year ago
MODERATORS