Question re: Origin Based Security Model (FEP-fe34)
2026-05-20 18:58 UTC
Replies (6)
-
@silverpill@mitra.social 2026-05-20 19:34
I agree out of principle that the security implications exist, but if you follow through with the exploit, it requires a non-compliant server to allow users to publish Update and Delete for other users on the same instance, and even then the exposure is limited to users of that origin only (e.g. your server cannot arbitrarily delete my posts). This is the foundation of the Origin-based security model. Correct. FEP-fe34 is based on the assumption that originating servers enforce boundaries between actors. This is stated in the section "Assumptions": The origin-based security model is designed for use in a network where a server is resposible for enforcing security boundaries between the hosted actors. Servers that publish objects without validation are not supported. In some cases, FEP-fe34 recommends same-actor policy as an additional protection against implementation bugs and against implementations that don't enforce actor boundaries on purpose. Update/Delete authorization is one of those cases (admittedly, the wording is a bit confusing in that paragraph...)
-
@thisismissem@activitypub.space 2026-05-21 19:18
@julian said: A strict reading of this does not preclude the ability of a same-origin moderator to modify and delete the object. This is my argument. I think I'd ask here is why is the Delete/Update coming from the moderator, instead of from the account that posted the thing, since that account is the owner of that thing?
-
@thisismissem@activitypub.space 2026-05-21 21:16
Well, yeah, that's why I linked what T&S is doing here to fix the moderator use case. At present I don't know of anyone sending cross-actor delete/update actions, so we'd be adding capability with the moderatedBy
-
@julian@activitypub.space 2026-05-20 19:02
My thoughts: I don't necessarily think FEP fe34 is strict enough to be a guiding principle for security across federated instances. The reporter said: "at minimum" means same-origin is the floor, not the ceiling. ... and he's right, there's more you should do to verify that only the owner or a designated moderator can update and delete an object. However we don't have a widely-used ability to determine who the moderators or admins are for any given instance. Mastodon may have an endpoint (in their API), threadiverse software use their own (as directed by 1b12, and even then it's optional), other software :shrug: ? So we fall back to origin-based security model and hand off the responsibility of determining who can and cannot alter somebody else's objects to the sending server. That's a risk we take with this model. Not sure if there is more that can be done to tighten this up.
-
@evan@cosocial.ca 2026-05-21 00:23
@julian @silverpill@mitra.social we did not define this well in ActivityPub. There's an implicit authorization model (creator can write the object, addressees can read and react) which will probably be more explicit in the next version, but we'd leave open other types of authorization. I think it's likely in the future we'll have a property for defining additional access control options. Same-origin is a good guess but it's not as good as explicit properties.
-
@nutomic@lemmy.ml 2026-05-21 09:38
We also got the same type of vulnerability reports. Good that you bring it up, because I wasnt aware of the FEP. To answer your question we can look at it the other way. Imagine we implement a way to federate admin/moderator status and then check it for every incoming mod action. First of all we get problems with older platforms which dont implement this feature yet, it means all their mod actions will be rejected and we end up with spam. Or we add a way to bypass the check, then the whole security feature becomes pointless. Even if we assume that all platforms correctly federate the admin/mod status, there would still be problems. Federation is not perfect, sometimes things get lost. Or someone gets appointed as admin and immediately removes some spam. At this point the admin status is not federated yet (if its part of the user profile and only updated every 24h). Then again valid mod actions are rejected and we end up with spam that is not deleted. On the other hand, whats exactly is the exploit here? Some platform lets a normal user (no admin/mod rights) send Update or Delete activites for another user on the same instance. That is clearly not our problem, but its a problem of the remote platform which allows such actions. Besides it cannot affect users from other instances so the impact would be very limited. Overall, adding such stricter checks would create more problems than it solves.