CSIRTS // UNIFIED SECURITY ADVISORY FEEDSYS ● ONLINE · POWERED BY INTELFUSIONS.COM

GHSA-8579-rgg5-ph2m: PraisonAI DiscordApproval accepts unrelated channel messages as dangerous-tool approvals

highCVSS 8.8CVE-2026-56832
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

Source
GitHub Security Advisories (INTL · database · site)
Severity
high — CVSS 8.8
Published
2026-06-18
Last updated
2026-07-20
Exploitation
Not in CISA KEV at last sync

Original advisory: https://github.com/advisories/GHSA-8579-rgg5-ph2m

Referenced CVEs

CVECSIRTS overviewExternal
CVE-2026-56832coverage & exploitation statusNVD · CVE.org

More from GitHub Security Advisories