this post was submitted on 26 Mar 2025
163 points (96.6% liked)

Fediverse

32986 readers
107 users here now

A community to talk about the Fediverse and all it's related services using ActivityPub (Mastodon, Lemmy, KBin, etc).

If you wanted to get help with moderating your own community then head over to [email protected]!

Rules

Learn more at these websites: Join The Fediverse Wiki, Fediverse.info, Wikipedia Page, The Federation Info (Stats), FediDB (Stats), Sub Rehab (Reddit Migration)

founded 2 years ago
MODERATORS
 

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.

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 128 points 1 month ago (8 children)

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.

[–] [email protected] 40 points 1 month ago (4 children)

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.

[–] [email protected] 3 points 1 month 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.

load more comments (3 replies)
[–] [email protected] 32 points 1 month ago* (last edited 1 month 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

[–] [email protected] 8 points 4 weeks 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.

[–] [email protected] 4 points 1 month ago (1 children)

Wait, are new instances federated by default?

I thought admins had to choose who they were federated with.

[–] [email protected] 17 points 1 month ago (1 children)

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

[–] [email protected] 4 points 1 month ago (5 children)

Okay but this demonstrates why defaulting to federation is a bad idea, doesn't it?

[–] [email protected] 18 points 1 month ago* (last edited 1 month 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.

[–] [email protected] 9 points 1 month ago

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

[–] [email protected] 9 points 1 month ago

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

[–] [email protected] 6 points 1 month ago

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

load more comments (1 replies)
[–] [email protected] 2 points 1 month ago (2 children)

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

[–] [email protected] 3 points 1 month ago (1 children)

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.

[–] [email protected] 2 points 4 weeks 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

[–] [email protected] 2 points 1 month ago (2 children)

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.

[–] [email protected] 9 points 1 month ago* (last edited 1 month ago)

Abolutely necessarily.

it works like this:

  • @[email protected] has a "followers only account".
  • @[email protected] 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.
  • @[email protected] 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

[–] [email protected] 8 points 1 month ago (1 children)

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

[–] [email protected] 4 points 1 month ago

Ah, good catch. Thanks!

[–] [email protected] 1 points 4 weeks ago (2 children)

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.

[–] [email protected] 8 points 4 weeks ago (1 children)

if they all cooperate

Gonna stop you right there

[–] [email protected] 2 points 4 weeks ago (1 children)

Its like email, an email server can decide to expose everyone's emails to the public, so don't add that email to your mailing list or email chain.

[–] [email protected] 4 points 4 weeks ago (1 children)

100% yes. But I think people also drastically overestimate the chain of trust within email. Never send anything over email that you don't want going all over the place.

[–] [email protected] 2 points 4 weeks ago

I really wish people (normies) could figure our pgp for email.

[–] [email protected] 3 points 4 weeks ago (2 children)

private posts are only sent to instances

Well, obviously they’re sent to some other ones, or else this wouldn’t be an issue.

This is a design flaw in the protocol. If your instance is going to send your private posts to other people, they’re not private. The authors need to fix your instance software, not demand that every other software in existence needs to “cooperate” and find out whether they’re “private” and not show them to the users if they are.

[–] [email protected] 3 points 4 weeks ago (1 children)

No, Imagine this

There is @[email protected] their is their friend, @[email protected]. bob also follows @[email protected]

If bob makes a private post (ie, followers only), only the instances of people he follows will recieve the post. The instance will see that its supposed to be private, and not show it to everyone.

This may, gotosocial.example, mastodon.example and pixelfed.example have the post, but don't show it. misskey.example won't have the post.

Then, if gotosocial.example (hypothetically) had a bug where it ignored posts visibility settings, those posts would be shown, since the post is sent to that server. If misskey.example had a similar bug, nothing would happen as the post wouldn't have reached that server anyway.

[–] [email protected] 3 points 4 weeks ago (3 children)

Yeah, so there's no real way to implement private posts on Mastodon.

I mean, it is fine if you want to implement sort of "best effort" semi-privacy and make it clear to everyone involved that that's what it is, but for any reasonable definition of "private," the requirement that it not get shown to people outside the list of people allowed to see it needs to be enforced better than this. There will always be server software that doesn't "cooperate." That's just the nature of open distributed systems. If you're making assurances to your users that their posts will be private, you need to be the one enforcing that, not everyone else on the network and the protocol needs to be set up with the ability for that to happen (which ActivityPub is not, which means it's misleading that someone told users that they can have "private" posts via this hack.)

[–] [email protected] 2 points 4 weeks ago (1 children)

I wouldn't consider it a hack, as the protocol was actually made with these posts in mind. Public posts weren't the focus of activitypub.

I would consider it similar to email, should we abandon it (yes, but not because of this) just because a malicious email server started publishing all the emails it recieved? AP is just email but social media.

[–] [email protected] 2 points 4 weeks ago (1 children)

I would consider it similar to email, should we abandon it (yes, but not because of this) just because a malicious email server started publishing all the emails it recieved? AP is just email but social media.

Yes, and people implemented PGP for encrypted email, and also made SMTP over TLS the standard, so that they wouldn't have to demand that every router and every SMTP server everywhere on the internet agree not to republish or store secret information that was passing through it, because it started to become understood that email was in no way private.

A proper standard for private posts would be similar. You could have all private posts be encrypted with a rotating key, for example, and have them decrypted by anyone who had the key, on the client side, and stored and transmitted in encrypted form. Being approved to follow the private posts would involve your user being given a copy of the key through some kind of private key exchange. It sounds complex (and it would be, a little), and it would involve moving to the client some of the key management that currently happens on the instance server (and thus undoes some of the actually good design of ActivityPub, by just putting the instance software back in the position of keeping every actor's keys for them and doing all the crypto work on behalf of the users). Anyway, it would be work and involve some redesign. I'm not saying that's what they should have done. I'm saying that's what having private posts as a feature would mean. Anything else is non-private posts that are pretending to be private posts.

[–] [email protected] 1 points 4 weeks ago (1 children)

Posts should be encrypted, this is what diaspora does. I agree with this. For emails though, pgp is used by no-one. Also, AP uses tls as well.

I was thinking that encrypted posts could work with multi key encryption (if my understanding of this post is correct https://stackoverflow.com/questions/597188/encryption-decryption-with-multiple-keys ).

The problem (imo) is mastodon being the internet explorer of the fediverse, and refusing to do any encryption.

[–] [email protected] 2 points 4 weeks ago (1 children)

Yeah. One of the very few design feature of AP that I like is that actors have their very own keys, which means that in theory you could have the keys stay in the browser unlocked by a passphrase or something, and make it so no one could forge a message by a user except that user.

It would be pretty easy to extend that, so that Lemmy DMs get encrypted with the key of the actor meant to receive them, private posts get multi-encrypted with the public keys of any approved followers, et cetera. But yeah it seems like the amount of attention this stuff gets is very minimal.

[–] [email protected] 2 points 4 weeks ago

That would also key in (no pun intended) with the nomadic identity FEPs.

load more comments (2 replies)
load more comments (1 replies)
load more comments (2 replies)
[–] [email protected] 18 points 1 month ago (1 children)
[–] [email protected] 7 points 4 weeks ago

Whut. I mean, probably, but not in this thread?

[–] [email protected] 12 points 1 month ago (1 children)
[–] [email protected] 12 points 1 month ago

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

[–] [email protected] 10 points 4 weeks ago (2 children)

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

[–] [email protected] 4 points 4 weeks ago

does it only effect privates? what about officers, like, say, captains?

[–] [email protected] 4 points 4 weeks ago

Its like email, if a server decided that it would expose everyones emails, everyones emails are exposed.

[–] [email protected] 9 points 4 weeks ago (5 children)

Give it a rest. A fork of Mastodon created a new abstraction for "private posts" and started sending to instances some posts that were marked in a new way as "private," and now they're trying to blame Pixelfed for not adopting their homemade standard for what posts their servers are sending out to everyone that they're not supposed to show, and what ones they are supposed to show. And, Pixelfed fixed it once they became aware of the issue.

It's fixed in 1.12.5. Why is this not titled "Mastodon instances claim to their users to offer 'private' posts but send them out exactly like normal posts, get surprised when software that hasn't magically adopted their new standard is showing them to people"?

[–] [email protected] 2 points 4 weeks ago (1 children)

Honestly pixelfed should have just not fixed it. It's a fediverse problem that can be fixed and mastodon is just misleading people.

Platforms should either make it clear that it means just that the post isn't advertised by default on all platforms but is always accessible to anyone that wants it or actually implement e2e encryption.

[–] [email protected] 3 points 4 weeks ago

I'm not sure I would go that far. A lot of "trust and safety" type things are like this, just soft boundaries to try to shape the types of interactions people are going to get themselves into to be a little more on the pleasant side. There's nothing wrong with Pixelfed trying to show some honor to the same advisory boundary. The real problem comes into it when projects like Mastodon start giving people the impression that "private" posts that are federated out are going to be able to stay private. As long as the user expectation is clear that it's just an advisory setting that will tweak the algorithms for showing the post in non-assurable ways, it is fine.

load more comments (4 replies)
load more comments
view more: next ›