Summary
A missing identity and ownership verification flaw in Discourse ActivityPub can allow a remote attacker to act on federated posts without the required permissions. Depending on the affected operation, an attacker may edit, delete, or reply to posts owned by other actors.
A missing identity and ownership verification flaw in Discourse ActivityPub can allow a remote attacker to act on federated posts without the required permissions. Depending on the affected operation, an attacker may edit, delete, or reply to posts owned by other actors.
Affected context
The vulnerability occurs in Discourse installations with ActivityPub federation enabled when inbound signed requests are processed without sufficiently correlating the authenticated request actor with the ActivityPub actor and the referenced federated post. Risk is greatest where remote federated content can reach post-management operations before identity and ownership checks are fully enforced.
The vulnerability occurs in Discourse installations with ActivityPub federation enabled when inbound signed requests are processed without sufficiently correlating the authenticated request actor with the ActivityPub actor and the referenced federated post. Risk is greatest where remote federated content can reach post-management operations before identity and ownership checks are fully enforced.
Exploit preconditions
- Attack surface: Inbound ActivityPub request-processing endpoints
- Required access: The ability to send requests to the publicly reachable federation interface
- Trigger point: Processing an inbound signed request that targets a federated post
- Why exploitation is possible: The application does not adequately verify that the authenticated signing actor is the ActivityPub actor and owns the referenced post before allowing the requested operation
- Attack surface: Inbound ActivityPub request-processing endpoints
- Required access: The ability to send requests to the publicly reachable federation interface
- Trigger point: Processing an inbound signed request that targets a federated post
- Why exploitation is possible: The application does not adequately verify that the authenticated signing actor is the ActivityPub actor and owns the referenced post before allowing the requested operation
Why this happens
The underlying bug is an authentication and authorization correlation failure. Request authentication establishes an identity, but the application does not reliably bind that identity to the ActivityPub actor and the target post's owner before performing a state-changing action. This behavior maps primarily to CWE-345, Insufficient Verification of Data Authenticity, and is also consistent with CWE-863, Incorrect Authorization, because ownership and permission checks do not sufficiently constrain the operation.
The underlying bug is an authentication and authorization correlation failure. Request authentication establishes an identity, but the application does not reliably bind that identity to the ActivityPub actor and the target post's owner before performing a state-changing action. This behavior maps primarily to CWE-345, Insufficient Verification of Data Authenticity, and is also consistent with CWE-863, Incorrect Authorization, because ownership and permission checks do not sufficiently constrain the operation.
Potential impact
- An attacker may edit federated posts without authorization.
- An attacker could delete content owned by another federated actor.
- An attacker may create unauthorized replies or alter discussion history.
- Federated content integrity and trust could be reduced.
- The issue can cause cross-tenant or cross-community data manipulation.
- An attacker may edit federated posts without authorization.
- An attacker could delete content owned by another federated actor.
- An attacker may create unauthorized replies or alter discussion history.
- Federated content integrity and trust could be reduced.
- The issue can cause cross-tenant or cross-community data manipulation.
General mitigation guidance
Mitigation generally focuses on binding every state-changing ActivityPub
operation to a verified actor and the resource owner.
Common defensive patterns include:
- Verify that the authenticated signing identity matches the ActivityPub actor associated with the request.
- Confirm that the authenticated actor owns the referenced post or has an explicitly granted capability for the operation.
- Apply authorization checks immediately before edits, deletions, and replies.
- Reject ambiguous, mismatched, or unverifiable actor and resource identifiers by default.
- Keep federation operations within least-privilege boundaries and preserve audit records for rejected and accepted changes.
Mitigation generally focuses on binding every state-changing ActivityPub
operation to a verified actor and the resource owner.
Common defensive patterns include:
- Verify that the authenticated signing identity matches the ActivityPub actor associated with the request.
- Confirm that the authenticated actor owns the referenced post or has an explicitly granted capability for the operation.
- Apply authorization checks immediately before edits, deletions, and replies.
- Reject ambiguous, mismatched, or unverifiable actor and resource identifiers by default.
- Keep federation operations within least-privilege boundaries and preserve audit records for rejected and accepted changes.
How teams detect issues like this
Organizations can look for this class of issue through:
- Static analysis and code review checks for state-changing handlers that authenticate requests without validating resource ownership.
- Review of federation code for mismatches between request principals, ActivityPub actors, and target resource owners.
- Tests that use valid signatures with deliberately mismatched actors and resources.
- Policy enforcement requiring explicit authorization checks before federated mutations.
- Runtime monitoring for unusual cross-actor edits, deletions, or replies and repeated authorization failures.
Automated security review tools may help identify missing authorization flows, but focused integration tests are also important.
Organizations can look for this class of issue through:
- Static analysis and code review checks for state-changing handlers that authenticate requests without validating resource ownership.
- Review of federation code for mismatches between request principals, ActivityPub actors, and target resource owners.
- Tests that use valid signatures with deliberately mismatched actors and resources.
- Policy enforcement requiring explicit authorization checks before federated mutations.
- Runtime monitoring for unusual cross-actor edits, deletions, or replies and repeated authorization failures.
Automated security review tools may help identify missing authorization flows, but focused integration tests are also important.

