High
github
·
GHSA-8579-rgg5-ph2m
PraisonAI DiscordApproval accepts unrelated channel messages as dangerous-tool approvals
Published Jun 18, 2026
CVSS 8.8
DiscordApproval accepts unrelated channel messages as dangerous-tool approvals
Summary
praisonai.bots.DiscordApproval approves a pending dangerous tool call when it
sees any later non-bot message in the configured Discord channel whose text is
classified as approval, such as yes.
The decision is not bound to:
- a Discord reply to the approval message;
- a Discord thread created for that request;
- a Discord interaction/button callback for that request;
- an explicit approver user allowlist; or
- an approval nonce visible only to intended approvers.
As a result, any user who can post in the configured approval channel can
approve a pending high-risk tool call by sending yes after the approval
message appears. The same local PoV also shows that the Slack and Telegram
messaging approval backends have no explicit approver allowlist parameter, but
the primary report-grade issue is the Discord backend's unthreaded channel
cross-talk: the approving message does not need to be a reply or otherwise
request-bound.
Affected Product
- Repository:
MervinPraison/PraisonAI - Ecosystem:
pip - Package:
praisonai - Component: Python messaging approval backends
- Primary affected file:
src/praisonai/praisonai/bots/_discord_approval.py - Related sibling files:
src/praisonai/praisonai/bots/_slack_approval.pysrc/praisonai/praisonai/bots/_telegram_approval.py
- Latest PyPI version validated:
4.6.58 - Current
origin/mainvalidated:1ad58ca02975ff1398efeda694ea2ab78f20cf3e - Current
origin/maintag validated:v4.6.58
Suggested affected range:
pip:praisonai >= 4.5.2,
Affected AI Products
llm