GHSA-8579-rgg5-ph2m: PraisonAI DiscordApproval accepts unrelated channel messages as dangerous-tool approvals
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.py
- src/praisonai/praisonai/bots/_telegram_approval.py
- Latest PyPI version validated: 4.6.58
- Current origin/main validated:
1ad58ca02975ff1398efeda694ea2ab78f20cf3e
- Current origin/main tag validated: v4.6.58
Suggested affected range:
pip:praisonai >= 4.5.2, <= 4.6.58
Representative local sweep:
4.5.0 Discord approval backend not present
4.5.2 vulnerable
4.5.128 vulnerable
4.6.9 vulnerable
4.6.10 vulnerable
4.6.56 vulnerable
4.6.57 vulnerable
4.6.58 vulnerable
Root Cause
DiscordApproval.request_approval() posts an approval message to the configured
channel and records the returned message id.
_poll_for_response() then polls channel history with:
f"/channels/{chan
Details
Original advisory: https://github.com/advisories/GHSA-8579-rgg5-ph2m
Referenced CVEs
| CVE | CSIRTS overview | External |
|---|---|---|
| CVE-2026-56832 | coverage & exploitation status | NVD · CVE.org |
More from GitHub Security Advisories
- mediumGHSA-xm43-3m56-w3wf: Ghost: Paid gift memberships obtainable at minimal cost via the donations feature2026-08-04
- mediumGHSA-chgm-3698-jm42: Ghost: Member existence leak via magic link sign-in response2026-08-04
- highGHSA-xpp7-93x6-v29m: XSS in Ghost's ActivityPub client2026-08-04
- mediumGHSA-7mpp-r37j-x5wh: Ghost: Session Fixation in Ghost Admin2026-08-04
- mediumGHSA-cjc9-q5gf-327p: Ghost: Theme Upload Path Traversal2026-08-04