Refuser les messages de webhook pour les connexions Discord, qui ne reçoivent que des DM au-dessus de la passerelle

FixMediaService
Expédié
17 septembre 2026 à 03:13 UTC
Auteur
Kamo
Commite
29369e3

Les DM de Discord n'atteignent MediaService que par le biais de WebSocket de DiscordGatewayManager, qui publie directement vers social.inbound.raw. Mais chaque connexion sociale a un jeton webhook, et SocialInboundController vérifie un billet pour /api/social/webhook/-token avec n'importe quel adaptateur le nom de connexion du jeton. DiscordAdapter.verifyWebhook a répondu, en supposant qu'il n'a jamais été appelé. Donc n'importe qui détient un jeton webhook de connexion Discord pourrait poster un MESSAGE-CREATE et le faire ingérer en tant que DM, créant une conversation et une avance sous n'importe quel nom. Il n'y a pas de signature à vérifier: Discord n'envoie jamais de demande sur ce chemin (ses Interactions signées par Ed25519 le critère d'évaluation est une caractéristique différente que cet adaptateur n'implémente pas). Donc verifyWebhook refuse maintenant, et un poste pour une connexion Discord est un 403 avant que quoi que ce soit est enregistré ou publié. Le chemin de la passerelle n'est pas touché. SocialInboundDiscordWebhookTest affiche un DM falsifié via le contrôleur avec l'adaptateur réel: 403, rien Logé, rien n'a été publié. Un fournisseur dont l'adaptateur vérifie toujours passe par le même point d'extrémité. Avec les anciens Retourer vrai le premier test échoue.

Tous les changements

Comme ce que tu vois expédier ?

Tout cela arrive dans votre espace de travail par lui-même. Commencez sur le plan gratuit et relisez cette page dans un mois.

Commencez gratuitement pour toujoursPrix de visualisation