All vulnerabilities
CVE-2026-56832GHSA-8579-rgg5-ph2mPYSEC-2026-3506

PraisonAI DiscordApproval accepts unrelated channel messages as dangerous-tool approvals

MervinPraison PraisonAIPyPILibraries & packages
CVSS
8.8High
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)No scoreNo FIRST EPSS score in this snapshot yet
Fixed in4.6.59Fixed versionOSV
Published23 Oct 2026Updated 23 Oct 2026CVE List

What fixes it

  • 4.6.59praisonai, PyPIOSVpip install "praisonai>=4.6.59"

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

PraisonAI is a multi-agent teams system. From version 4.5.2 to before version 4.6.59, 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. 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 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. This issue has been patched in version 4.6.59.

Text from CVE List

Affected versions 53

  • PraisonAIaffected: >= 4.5.2, < 4.6.59CVE List
  • praisonai, pip>= 4.5.2, <= 4.6.58GitHub
  • praisonai, PyPIfrom 4.5.2, fixed in 4.6.59OSV
  • praisonai, PyPI4.5.10OSV
  • praisonai, PyPI4.5.100OSV
  • praisonai, PyPI4.5.101OSV
  • praisonai, PyPI4.5.102OSV
  • praisonai, PyPI4.5.103OSV
  • praisonai, PyPI4.5.104OSV
  • praisonai, PyPI4.5.105OSV
  • praisonai, PyPI4.5.106OSV
  • praisonai, PyPI4.5.107OSV
  • praisonai, PyPI4.5.108OSV
  • praisonai, PyPI4.5.109OSV
  • praisonai, PyPI4.5.11OSV
  • praisonai, PyPI4.5.110OSV
  • praisonai, PyPI4.5.111OSV
  • praisonai, PyPI4.5.112OSV
  • praisonai, PyPI4.5.113OSV
  • praisonai, PyPI4.5.114OSV
  • praisonai, PyPI4.5.115OSV
  • praisonai, PyPI4.5.117OSV
  • praisonai, PyPI4.5.118OSV
  • praisonai, PyPI4.5.119OSV
  • praisonai, PyPI4.5.12OSV
  • praisonai, PyPI4.5.120OSV
  • praisonai, PyPI4.5.121OSV
  • praisonai, PyPI4.5.122OSV
  • praisonai, PyPI4.5.123OSV
  • praisonai, PyPI4.5.124OSV
  • praisonai, PyPI4.5.125OSV
  • praisonai, PyPI4.5.126OSV
  • praisonai, PyPI4.5.127OSV
  • praisonai, PyPI4.5.128OSV
  • praisonai, PyPI4.5.129OSV
  • praisonai, PyPI4.5.13OSV
  • praisonai, PyPI4.5.130OSV
  • praisonai, PyPI4.5.131OSV
  • praisonai, PyPI4.5.132OSV
  • praisonai, PyPI4.5.133OSV
  • praisonai, PyPI4.5.134OSV
  • praisonai, PyPI4.5.135OSV
  • praisonai, PyPI4.5.136OSV
  • praisonai, PyPI4.5.137OSV
  • praisonai, PyPI4.5.139OSV
  • praisonai, PyPI4.5.14OSV
  • praisonai, PyPI4.5.140OSV
  • praisonai, PyPI4.5.143OSV
  • praisonai, PyPI4.5.144OSV
  • praisonai, PyPI4.5.145OSV
  • praisonai, PyPI4.5.149OSV
  • praisonai, PyPI4.5.15OSV
  • praisonai, PyPI4.5.16OSV

References 1