
PEACH
Un cadre d’isolation des locataires
Admittedly this would be a pretty convoluted and improbable exploit, but I figured I'd submit via the vuln form just to be safe! It's possible for a signed request for one event to be replayed with an attacker-controlled "payload" smuggled in via the URL and accepted by InteractionCallbackParse since FormValue will fall back to the query params if the key doesn't exist in the body.
An internal AI scanner helped find this, but I've manually validated and written this report by hand
In the examples, and as recommended by Slack, signature validation is done with the form body: https://github.com/slack-go/slack/blob/6065d7ddad41ae0fffe26e32a4a9259118df8ba4/examples/parse_action_event/main.go#L148
However, FormValue, used by interaction callback parsing, can fall back to the (unsigned) query param: https://github.com/slack-go/slack/blob/6065d7ddad41ae0fffe26e32a4a9259118df8ba4/interactions.go#L85
Though incredibly unlikely, it's possible to use a signed request for a different event type (which doesn't include payload in its request body), and craft your own interactive payload. The interaction callback parsing should use ParseForm + PostForm instead, similar to SlashCommandParse: https://github.com/slack-go/slack/blob/6065d7ddad41ae0fffe26e32a4a9259118df8ba4/slash.go#L31
Interaction payloads are always sent in the HTTP POST, not in query params, so this should be compatible.
I've already drafted a fix here: https://github.com/slack-go/slack-ghsa-pj2x-fjjr-q84c/commit/39a28d36df835cf1e3dca49b35589d1644b82b8c
/slack/event and /slack/interactive, using InteractionCallbackParse for /slack/interactive?payload={...} with your own payloadSource: NVD
Évaluation gratuite des vulnérabilités
Évaluez vos pratiques de sécurité cloud dans 9 domaines de sécurité afin d’évaluer votre niveau de risque et d’identifier les lacunes dans vos défenses.
Obtenez une démo personnalisée
"La meilleure expérience utilisateur que j’ai jamais vue, offre une visibilité totale sur les workloads cloud."
"Wiz fournit une interface unique pour voir ce qui se passe dans nos environnements cloud."
"Nous savons que si Wiz identifie quelque chose comme critique, c’est qu’il l’est réellement."