Found this via Aurynn Shaw:

When following someone on a different server on the Fediverse, the remote server decides whether you are allowed to do so. This enables features like private accounts. Due to an implementation mistake, Pixelfed ignores this and allows anyone to follow even private accounts on other servers. When a legitimate user from a Pixelfed instance follows you on your locked fediverse account, anyone on that Pixelfed instance can read your private posts. You don’t need to be a Pixelfed user to be affected.

Pixelfed admins should update to v1.12.5 ASAP, but upgrading can be a major hurdle.

Importantly, your Mastodon or GoToSocial instance isn’t handing your private posts to any random server, just because it asks. The problem only becomes apparent when you have at least one legit accepted follower from a Pixelfed server. Now that server is allowed to fetch all your private posts. And when it knows the posts, it has to decide who to show them. When you accept a follower, you not only place your trust to keep a secret on them, but also on their admin and the software they are running.

Edited to add the last block quote.

  • LambdaRX@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    127
    ·
    4 days ago

    I wouldn’t call it Pixelfed’s vulnerablility, but a reminder that nothing on Fediverse is private. Even if Pixelfed is fixed, someone can create rogue instance to read other’s private posts.

    • haverholm@kbin.earthOP
      link
      fedilink
      arrow-up
      43
      ·
      4 days ago

      If I understand it correctly, it’s kind of both. Sounds like Pixelfed didn’t follow best practice setting privacy guardrails in follow request approval, and it exacerbates the inherent lack of privacy on the fediverse.

      You’re right of course, anyone (with the coding chops) could’ve intentionally set up an instance that does the same for malicious purposes. That should be a wake-up call for anyone who thinks ActivityPub is a great sexting medium.

      • unexposedhazard@discuss.tchncs.de
        link
        fedilink
        English
        arrow-up
        6
        ·
        4 days ago

        I dont know about other fedi services, but lemmy tells you at message composition, that DMs are not safe/private. If pixelfed doesnt do this, then that is really the issue.

      • iltg@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        1
        ·
        3 days ago

        receiving posts is trivial but you need to convince others to send it to you. i can’t just set up a malicious instance and get your private posts, i need to convince you to send them to me, and once convinced i can use any normal software to access it, no malicious custom thing needed. literally just follow me from a mastodon.social throwaway and you get my followers-only posts. content addressing is great on fedi and your instance sends your private posts exactly to who you want and noone else. pixelfed receives a private posts and shows it to third parties, its not the system’s fault.

        fedi is not great for sexting because your pics just sit in clear on your server admin’s machine and all dms are easily searchable on db, it’s a whole other issue

        • fmstrat@lemmy.nowsci.com
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 days ago

          The whole point of this issue with Pixelfed is that none of what you describe is required.

          Find any follower of a Fediverse account of any kind (Target Account) that’s on a Pixelfed server. Go to that Pixelfed server, view “private” posts from Target Account there.

          No need to set up a server, or get sent anything. Granted, even without this flaw ActivityPub is not the way to go for anything private.

    • Melmi
      link
      fedilink
      English
      arrow-up
      31
      ·
      edit-2
      4 days ago

      I kinda of lean towards the idea of “private accounts” being a bad idea as a result, just because it creates a false sense of security. But I’m not in the target demographic so idk

    • Ulrich@feddit.org
      link
      fedilink
      English
      arrow-up
      8
      ·
      4 days ago

      Yeah this just sounds like one of the drawbacks of a federated system. In order for people on remote servers to be able to see your “private” posts, your local server has to feed that info to them and trust them to handle it appropriately.

    • iltg@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      3
      ·
      4 days ago

      if you deliver a letter to your cousin, and they leak it to all their friends, is it the post system’s fault? instances federate by default, but private posts require actual intention. if i make a private post, explicitly mark it as private, deliver it to your instance and then your instance leaks it, i’d blame the instance, not the system. even signal can leak if you send your stuff to unintended parties.

      someone can create a rogue instance

      you shouldn’t send private stuff to unreliable parties. big software and big instances have a reputation, and it’s constantly up to you whether sending them something or not. when @sus@totally.legit follows you, check where they’re from. if you just accept follows left and right, are your followers-only posts really private? and if you direct message someone on some sketchy instance, you still need to trust them to respect your privacy. it’s the same on signal, e2ee doesn’t make a difference

      this is why i completely blame pixelfed here: it breaks trust in transit and that’s unacceptable because it makes the system untrustworthy. you can get followed by sketchy people on mastodon.social and they will only see what you send them. in this case, other people can see what you post, regardless of you sending it to them or not, and regardless of the target leaking it or not

      • RobotToaster@mander.xyz
        link
        fedilink
        English
        arrow-up
        16
        ·
        4 days ago

        There’s easily over a thousand fediverse instances at this point, having to whitelist them all would be impractical.

          • Melmi
            link
            fedilink
            English
            arrow-up
            17
            ·
            edit-2
            4 days ago

            The issue is that if you don’t default to federation, it becomes essentially impossible for new instances to join the fediverse. A potential new instance would have to go around to every single existing instance and ask to be allowlisted, which is onerous for both the new instances and for the large server admins who would be getting tons of requests. It would also essentially kill small-scale selfhosting as a result.

          • AwesomeLowlander@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            1
            ·
            2 days ago

            Defaulting to not federating is what the major email providers currently do, and is why email has now become a centralised service that you cannot practically self host.

          • lambalicious@lemmy.sdf.org
            link
            fedilink
            English
            arrow-up
            9
            ·
            4 days ago

            The entire point of the fediverse is to federate. Not federating by default kills discoverability and the potential for discoverability among other things

          • RobotToaster@mander.xyz
            link
            fedilink
            English
            arrow-up
            9
            ·
            4 days ago

            It demonstrates that nothing on the fediverse is private, and bad hacks that pretend otherwise are a terrible idea.

          • Microw@lemm.ee
            link
            fedilink
            English
            arrow-up
            6
            ·
            4 days ago

            Imo it demonstrates that for certain threat models the fediverse simply doesn’t have the 100% secure answers.

    • irelephant [he/him]🍭@lemm.ee
      link
      fedilink
      English
      arrow-up
      2
      ·
      4 days ago

      private posts are only sent to instances that either your followers or the list of people you want to see the post are on. If they all co-operate, you will be fine.

    • troed@fedia.io
      link
      fedilink
      arrow-up
      3
      ·
      4 days ago

      The private account would still need to accept a follower from that rogue instance.

      • haverholm@kbin.earthOP
        link
        fedilink
        arrow-up
        5
        ·
        4 days ago

        Edited to add: I got this around the wrong foot, see the reply to this. /edit

        Not necessarily, as clearly stated in the linked article:

        But sure enough, the toot was followers only and the person that had liked it was not following her Mastodon account. When I took a look at the other persons profile on pixelfed.social, I noticed that the instance was nevertheless claiming the account was following her.

        When pixelfed assumes that an account is not locked, it immediately treats a follow attempt as completed. For the server on the other end it looks like a normal follow request. It could be rejected, and pixelfed would still be convinced that a follow relation exists.

        • SkaveRat@discuss.tchncs.de
          link
          fedilink
          English
          arrow-up
          8
          ·
          edit-2
          4 days ago

          Abolutely necessarily.

          it works like this:

          • @privateuser@mastodon.example.com has a “followers only account”.
          • @someuser@pixelfed.example.com is a friend of above account, requested access and was granted. This now causes mastodon.example.com to push all messages of @privateuser to pixelfed.example.com.
          • @anotheruser@pixelfed.example.com requests access, but gets ignored. But the pixelfed instance marks the user as “follows @privateuser
          • In the interface of @someuser, the messages are shown as expected.
          • In the interface of @anotheruser, they are also shown. Because PF basically does a database “select messages of users that the user follows”, without checking if the access was ever granted.

          Important to note, that this would not happen, if the messages weren’t already pushed to the server due to the “allowed” user

        • troed@fedia.io
          link
          fedilink
          arrow-up
          8
          ·
          4 days ago

          Yes, necessarily.

          Importantly, your Mastodon or GoToSocial instance isn’t handing your private posts to any random server, just because it asks. The problem only becomes apparent when you have at least one legit accepted follower from a Pixelfed server

      • LambdaRX@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        3
        ·
        4 days ago

        Yes, but account/instance would need to actively research which instances are rogue, and beware of them. It could be solved by creating tool which would automatically detect this vulnerability feature.

        • TORFdot0@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          4 days ago

          If you have a private account, why would you accept a follow from a user on a rogue instance?

          I guess you would need to trust your friend to vet whatever instance they join. And you’d have to vet that you aren’t getting catfished by a threat actor using a friends identity but those are all problems regardless of whether that’s fixed since a malicious admin would have access to your posts so your friend can subscribe to them in the first place, whether this is fixed or not

  • RaoulDook@lemmy.world
    link
    fedilink
    English
    arrow-up
    10
    ·
    4 days ago

    I didn’t even know “private” posts were a thing on the fediverse but now I guess I know to watch out for that. Maybe I’ll post some privates after losing about 30 lbs

    • haverholm@kbin.earthOP
      link
      fedilink
      arrow-up
      13
      ·
      4 days ago

      Nope. It looks like crash testing security in production, or “fuck around and find out” with other people’s privacy.

    • manicdave@feddit.uk
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 days ago

      It’s a failure on the part of mastodon. I don’t really care about whatever drama dansup is embroiled in. Mastodon shouldn’t imply a post is only readable by followers when it’s just a public post that doesn’t show by default in their frontend.