The vulnerability lies in the inconsistent application of sender authorization policies for non-message events, specifically reaction_* and pin_* events in the Slack and Discord integrations of OpenClaw. The analysis of the provided patches (aedf62ac7e669a89c7b299201bf6537dc6b12e0e and 75dfb71e4e8b7c2feba5a8ca662f92ea840e0147) reveals that the original code did not properly check if the user triggering these events was authorized according to the configured dmPolicy, allowFrom lists, or channel-specific user permissions.
The vulnerable functions were the event handlers responsible for processing these incoming events:
registerSlackReactionEvents (in src/slack/monitor/events/reactions.ts): The handler for reaction_added/removed events lacked sender validation, allowing unauthorized users to inject reaction-based system events.
handleSlackPinEvent (in src/slack/monitor/events/pins.ts): This function, called by the pin_added/removed event handlers, only checked channel-level permissions, not the sender's authorization, creating a similar bypass.
handleDiscordReactionEvent (in src/discord/monitor/listeners.ts): This handler was missing authorization checks for reactions occurring in Direct Messages, failing to enforce the dmPolicy.
The patches rectify these issues by introducing and consistently applying a centralized authorization function, authorizeSlackSystemEventSender for Slack, and adding specific authorization logic for Discord. This ensures that all incoming reaction_* and pin_* events are gated by the same sender policy checks as regular messages, closing the policy-consistency gap.