fix: Also check sender origin

This commit is contained in:
timedout 2025-12-21 10:58:50 +00:00
parent b2bead67ac
commit 7fa4fa9862
No known key found for this signature in database
GPG key ID: 0FA334385D0B689F

View file

@ -90,6 +90,16 @@ pub(crate) async fn create_invite_route(
)));
}
// Ensure the sending user isn't a lying bozo
let sender_server = signed_event
.get("sender")
.try_into()
.map(UserId::server_name)
.map_err(|e| err!(Request(InvalidParam("Invalid sender property: {e}"))))?;
if sender_server != body.origin() {
return Err!(Request(Forbidden("Sender's server does not match the origin server.",)));
}
// Ensure the target user belongs to this server
let recipient_user: OwnedUserId = signed_event
.get("state_key")