5
top 16 comments
sorted by: hot top controversial new old
[-] PhilipTheBucket@ponder.cat 23 points 3 days ago

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"?

[-] LWD@lemm.ee -4 points 3 days ago

I looked at your comment before reading this article, and you make several bold statements that the article dispels

A fork of Mastodon created a new abstraction for "private posts"

The author of the article links to the official specification which was made for ActivityPub. This does not appear to simply be "some fork of Mastodon", but if it is, please provide a citation.

they're trying to blame Pixelfed for not adopting their homemade standard

See previous comment

It's fixed in 1.12.5

The article also goes into great lengths about how the security update was handled poorly, with inappropriate communication along the way. It contrasts this with a correct update.

[-] PhilipTheBucket@ponder.cat 5 points 3 days ago

The author of the article links to the official specification which was made for ActivityPub.

Yes. Search that specification for "private." You'll find precisely one reference to it, which doesn't deal in any respect with how post privacy needs to work. It just briefly mentions the concept of follower-only profiles.

I also looked over the ActivityPub spec and didn't find anything. Where are you saying it is mandated by ActivityPub that you need to treat some particular posts special?

I thought it was a fork of Mastodon where this private functionality was first implemented, because the official developers were reluctant to do it (and because often big steps forward come in the forks for whatever reason). I could be wrong about that. Regardless, my point is that they're doing something somewhat nonstandard and unsafe by federating out "private" posts in this fashion, and it's not even slightly surprising that it managed to fuck up in this particular predictable way. Pixelfed is far from the least careful or responsible of the microblogging forks out there.

Mastodon, in general, is regarded as careless with safety. There was some discussion way back when about the implications as far as federating out private content to untrusted servers and some remedies that might strike a good balance. I actually think this article summarized things extremely well:

Something you may not know about Mastodon's privacy settings is that they are recommendations, not demands. This means that it is up to each individual server whether or not it chooses to enforce them. For example, you may mark your post with unlisted, which indicates that servers shouldn't display the post on their global timelines, but servers which don't implement the unlisted privacy setting still can (and do).

Servers don't necessarily disregard Mastodon's privacy settings for malicious reasons. Mastodon's privacy settings aren't a part of the original OStatus protocol, and servers which don't run a recent version of the Mastodon software simply aren't configured to recognize them. This means that unlisted, private, or even direct posts may end up in places you didn't expect on one of these servers—like in the public timeline, or a user's reblogs.

See, that's fine as long as that's the user expectation. There are a lot of visibility settings that are kind of fine as long as a big horde of people doesn't unexpectedly show up. But if, like in the OP article, someone's posting private content and genuinely expecting it to be private, they need to be educated about how Mastodon does post privacy, before they keep doing it and keep getting shocked that it isn't private.

The article also goes into great lengths about how the security update was handled poorly, with inappropriate communication along the way. It contrasts this with a correct update.

Yes, I read it. His opinion that it was handled poorly is wrong. The "security issue" is created on Mastodon's side, and the proper remedy is for it to be widely known among the users that visibility settings are recommendations, not demands. Keeping the idea that this is happening a secret is very bad security policy. I suspect that he's having a performative freakout about the way Dansup committed the change, for whatever reason, but regardless of the motivation, this was exactly the right thing to do: Fix the issue and be open about what version has the fix. The article's demands for secrecy surrounding it, when the underlying issue in Mastodon's federation is still right there ready for any other server software to mishandle, is wrong and creating a bad privacy situation for the users.

[-] LWD@lemm.ee -1 points 3 days ago

Search that specification for "private." You'll find precisely one reference to it...

It might be better to look for what the article mentions: "manuallyApprovesFollowers", and it is explicit about what to do when that value is set to true. I don't understand how you're confused by it.

Mastodon, in general, is regarded as careless with safety.

Regardless, two wrongs don't make a right, and I found the description of how to properly handle a security issue as discussed in the article to be appropriate. For example, collaborating with administrators of large instances.

The "security issue" is created on Mastodon's side

Are we reading the same article? I realize this isn't the first time you implied this, but I thought I must have been mistaken.

From the original post: "Importantly, your Mastodon or GoToSocial instance isn’t handing your private posts to any random server, just because it asks."

Mastodon is behaving. Pixelfed was not. Pixelfed fixed the security issue because it was their issue...

[-] PhilipTheBucket@ponder.cat 1 points 3 days ago* (last edited 3 days ago)

The “security issue” is created on Mastodon’s side

Are we reading the same article? I realize this isn’t the first time you implied this, but I thought I must have been mistaken.

Let me excerpt from this since you seem to have missed it:

Something you may not know about Mastodon's privacy settings is that they are recommendations, not demands. This means that it is up to each individual server whether or not it chooses to enforce them. For example, you may mark your post with unlisted, which indicates that servers shouldn't display the post on their global timelines, but servers which don't implement the unlisted privacy setting still can (and do).

Servers don't necessarily disregard Mastodon's privacy settings for malicious reasons. Mastodon's privacy settings aren't a part of the original OStatus protocol, and servers which don't run a recent version of the Mastodon software simply aren't configured to recognize them. This means that unlisted, private, or even direct posts may end up in places you didn't expect on one of these servers—like in the public timeline, or a user's reblogs.

Keeping secret that private posts work this way in Mastodon is very bad security. Going past that, to say that someone else is committing a security sin if they make it clear to people that private posts work this way in Mastodon (not even as any kind of announcement, but just tangentially while fixing their own software's handling of Mastodon's "private" posts in a quick and complaint-free fashion) is even worse security, which I would say travels into the land of ludicrous counterproductive performative freakout.

Let me paint for you a picture of what might happen if you mislead Mastodon users into thinking that their "private" posts are private:

I created an account on pixelfed.social and clicked follow on my partner’s Mastodon account, and… I could see all of her private posts. Instead of telling me I’d have to wait to have my follow accepted, I was already following her.

“Oh no, not again”, I said, dreading the thought of spending the next few hours reading PHP code and writing a report.

Sort of implies it's happened before. I would not be surprised, of course. Want me to quote the important part to understand again?

Something you may not know about Mastodon's privacy settings is that they are recommendations, not demands. This means that it is up to each individual server whether or not it chooses to enforce them. For example, you may mark your post with unlisted, which indicates that servers shouldn't display the post on their global timelines, but servers which don't implement the unlisted privacy setting still can (and do).

Servers don't necessarily disregard Mastodon's privacy settings for malicious reasons. Mastodon's privacy settings aren't a part of the original OStatus protocol, and servers which don't run a recent version of the Mastodon software simply aren't configured to recognize them. This means that unlisted, private, or even direct posts may end up in places you didn't expect on one of these servers—like in the public timeline, or a user's reblogs.

That's an important thing for you to read. I linked you to it, and then quoted it, but it didn't seem to stick, so I'm sending it again.

I've said as much on this topic as I feel like saying.

[-] LWD@lemm.ee -3 points 3 days ago

The trouble with the thing you quoted twice in a row - unnecessarily padding out your post - is that saying "Mastodon may not be perfect" does not cancel out Pixelfed's massive security issue.

Two wrongs don't make a right.

Non-malicious servers aren't supposed to do what Pixelfed did.

[-] PhilipTheBucket@ponder.cat 2 points 3 days ago

Hey, that's a really good point. It turns out I was able to dig up an important thing to read that addresses it, though. Here, check this out:

Servers don’t necessarily disregard Mastodon’s privacy settings for malicious reasons. Mastodon’s privacy settings aren’t a part of the original OStatus protocol, and servers which don’t run a recent version of the Mastodon software simply aren’t configured to recognize them. This means that unlisted, private, or even direct posts may end up in places you didn’t expect on one of these servers

[-] LWD@lemm.ee -3 points 3 days ago

Don't be a jackass and don't spam.

[-] PhilipTheBucket@ponder.cat 1 points 3 days ago

Oh, you feel like repeated postings of exactly the same thing is unnecessary? Funny about that, I had a similar reaction.

[-] LWD@lemm.ee -3 points 3 days ago

You said you were done responding, so at least have the dignity of demonstrating a little bit of honesty where it is most apparent.

[-] PhilipTheBucket@ponder.cat 1 points 3 days ago

I was planning to just give it a rest, since we were going in circles, but you wandered into several additional comments sections and replied to me in all of them with a couple of new arguments, so I decided I would respond.

[-] Vendetta9076@sh.itjust.works 6 points 3 days ago

I don't understand why people don't understand that AcitivityPub is not a private protocol. Like at all. Its not meant to be and was never meant to be. Any "privacy" improvements from random instances are not part of the core code structure and do not work outside of them 99% of the time.

[-] MangoPenguin@lemmy.blahaj.zone 2 points 3 days ago

It's good to be aware of and in general treat anything uploaded to the internet as public, but it also is a bug that the software isn't working right.

[-] Vendetta9076@sh.itjust.works 5 points 3 days ago* (last edited 3 days ago)

It was a poorly implemented feature that was never communicated and when said feature failed to function outside of the specific instance it was designed for, people threw shit. That's not a bug. If anything its an integration failure. A failure that is entirely the fault of the mastodon instance team. Calling it a vulnerability is fuckin wild.

[-] LWD@lemm.ee 0 points 3 days ago* (last edited 3 days ago)

It seems

Any "privacy" improvements from random instances are not part of the core code structure

The privacy improvements are from the ActivityPub protocol. The author cites them.

Edit: ...and the spammer who keeps copy-pasting the same irrelevant spam from thread to thread is back

[-] PhilipTheBucket@ponder.cat 2 points 3 days ago

They're really not.

Here's the relevant docs, and a little summary of how they relate to private posts and Mastodon's specific implementation of them.

Specs: https://www.w3.org/TR/activitypub/#delivery

Mastodon code where you can verify that this is how they are handled: https://github.com/mastodon/mastodon/blob/main/app/lib/activitypub/tag_manager.rb (look at the cc() and to() functions)

Overall summary in detail:


ActivityPub Specification

What ActivityPub Explicitly Mandates

  1. Audience Targeting (Section 5.1):

    • Activities must include audience targeting fields (to, cc, etc.)
    • Servers must deliver activities to the specified audiences
  2. Public Posts (Section 7.1.2 and 7.1.3):

    • Activities addressed to the Public collection must be delivered to all followers
    • Servers MAY deliver Public activities to all known sharedInbox endpoints
  3. Filtering (Sections 5.2 and 7.1.2):

    • Servers SHOULD filter inbox content according to the requester's permissions
    • Servers MAY filter delivery targets according to implementation-specific rules
  4. Privacy of Non-Addressed Content (Section 7.1 Note on "Silent and private activities"):

    • For activities with no recipients, it's "recommended" (not required) that objects remain private
    • An activity sent only to the "public" collection should be viewable in the actor's outbox but not delivered to any actors

What ActivityPub Leaves Undefined

  1. Visibility Levels:

    • No explicit definitions for "public," "unlisted," "private," or "direct" as formal visibility modes
    • No mandatory behavioral requirements for different audience targeting patterns
  2. Privacy Enforcement:

    • No explicit requirements for how receiving servers should restrict visibility based on audience fields
    • No requirements that servers must hide content from non-addressed users
  3. Timeline Placement:

    • No specification about which posts should appear in public timelines vs. home timelines

Mastodon's Implementation

Visibility Levels in Mastodon

Mastodon implements four primary visibility levels:

  1. Public

    • UI Name: "Public"
    • ActivityPub Implementation:
      • to: ["https://www.w3.org/ns/activitystreams#Public"]
      • cc: ["https://example.com/users/username/followers"]
    • Behavior: Visible to everyone, appears in public timelines
  2. Unlisted

    • UI Name: "Unlisted" or "Quiet public" (newer versions)
    • ActivityPub Implementation:
      • to: ["https://example.com/users/username/followers"]
      • cc: ["https://www.w3.org/ns/activitystreams#Public"]
    • Behavior: Visible to everyone but doesn't appear in public timelines
  3. Private

    • UI Name: "Followers-only"
    • ActivityPub Implementation:
      • to: ["https://example.com/users/username/followers"]
      • cc: [] (empty)
    • Behavior: Only visible to followers
  4. Direct

    • UI Name: "Mentioned people only"
    • ActivityPub Implementation:
      • to: [array of mentioned user URLs]
      • cc: [] (empty)
    • Behavior: Only visible to mentioned users

Key Implementation Details

  1. Visibility Through Addressing:

    • Mastodon uses the to and cc fields to indicate intended visibility
    • The presence and position of the Public collection determines visibility level
    • No explicit "visibility" property is included in ActivityPub messages
  2. Convention-Based Visibility:

    • The difference between "public" and "unlisted" is determined by whether the Public collection is in to (public) or cc (unlisted)
    • This is a convention defined by Mastodon, not explicitly required by the spec

I also sent a user-targeted explanation of how Mastodon's privacy settings work, that might be helpful for you to read. You can probably find it in my profile.

this post was submitted on 27 Mar 2025
5 points (58.1% liked)

Privacy Guides

18584 readers
19 users here now

In the digital age, protecting your personal information might seem like an impossible task. We’re here to help.

This is a community for sharing news about privacy, posting information about cool privacy tools and services, and getting advice about your privacy journey.


You can subscribe to this community from any Kbin or Lemmy instance:

Learn more...


Check out our website at privacyguides.org before asking your questions here. We've tried answering the common questions and recommendations there!

Want to get involved? The website is open-source on GitHub, and your help would be appreciated!


This community is the "official" Privacy Guides community on Lemmy, which can be verified here. Other "Privacy Guides" communities on other Lemmy servers are not moderated by this team or associated with the website.


Moderation Rules:

  1. We prefer posting about open-source software whenever possible.
  2. This is not the place for self-promotion if you are not listed on privacyguides.org. If you want to be listed, make a suggestion on our forum first.
  3. No soliciting engagement: Don't ask for upvotes, follows, etc.
  4. Surveys, Fundraising, and Petitions must be pre-approved by the mod team.
  5. Be civil, no violence, hate speech. Assume people here are posting in good faith.
  6. Don't repost topics which have already been covered here.
  7. News posts must be related to privacy and security, and your post title must match the article headline exactly. Do not editorialize titles, you can post your opinions in the post body or a comment.
  8. Memes/images/video posts that could be summarized as text explanations should not be posted. Infographics and conference talks from reputable sources are acceptable.
  9. No help vampires: This is not a tech support subreddit, don't abuse our community's willingness to help. Questions related to privacy, security or privacy/security related software and their configurations are acceptable.
  10. No misinformation: Extraordinary claims must be matched with evidence.
  11. Do not post about VPNs or cryptocurrencies which are not listed on privacyguides.org. See Rule 2 for info on adding new recommendations to the website.
  12. General guides or software lists are not permitted. Original sources and research about specific topics are allowed as long as they are high quality and factual. We are not providing a platform for poorly-vetted, out-of-date or conflicting recommendations.

Additional Resources:

founded 2 years ago
MODERATORS