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.

  • AlmightySnoo 🐢🇮🇱🇺🇦
    link
    38
    edit-2
    1 year ago

    the details of the vulnerability are already known now anyway since there’s a fix that was proposed on the Lemmy GitHub so I don’t think it will hurt others to talk about it

    • @namelivia
      link
      151 year ago

      Could you please link the issue? Thanks!

        • AlmightySnoo 🐢🇮🇱🇺🇦
          link
          331 year ago

          yup that’s the one

          what I find weird is that the “fix” still focuses only on the front-end, the issue is still that unescaped HTML is being stored in the database and still trusting the front-end is nuts

          • Redex
            link
            English
            171 year ago

            I mean, I’m pretty sure that for an XSS attack that’s fine. The entire problem is that somebody posts e.g. a comment that contains code that is automatically run in users’ browsers. If you make the front end just not execute that code then it’s fine. Who cares what’s stored in the back end?

            I mean, it would still be better to have multiple fail-safes, and they probably should still sanitize text entering the database.

            But this is sufficient for a quick fix.

            • @solrize
              link
              English
              201 year ago

              Let me introduce you to my friend, Little Bobby Tables… :)

              • @luthis
                link
                English
                71 year ago

                ALWAYS SANITISE!

            • Vamp
              link
              English
              141 year ago

              I think people are forgetting that it’s somewhat obvious the hackers or whomever, I don’t really care honestly are Lemmy users considering they did this at night and got into the site so quickly to begin with, they’d have to have been familiar with it to get into it as fast as they did.

              If anything everything should be fixed.

            • @[email protected]
              link
              fedilink
              English
              71 year ago

              For sure it is sufficient for a quick fix. But a Lemmy post can be posted not only on Lemmy but on other front ends (like kbin, mastodon, and many others) and they can suffer from a similar attack due to the backend storing and forwarding the bad content. So, it should not be stored as it is in the backend

          • Vamp
            link
            71 year ago

            I think the main developers are aware of either of them but I’m not sure, haven’t seen anyone site admin wise talk about this mess.

            • @ElectroNeutrino
              link
              7
              edit-2
              1 year ago

              This discussion on the original bug report does talk about the back-end needing a fix as well.

        • @sv1sjp
          link
          21 year ago

          Oofof… That’s not suppose how we announce vulnerabilities…