Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAccess Slack workspace where bot is present
-
DeliveryMention bot triggering app_mention event
-
ExploitBypass allowed_users/allowed_channels/unknown-user checks
-
ExecutionSubmit arbitrary prompt to PraisonAI agent
-
ImpactAgent tools act on confidentiality/integrity
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires three concrete conditions: (1) the PraisonAI deployment subscribes to Slack's app_mention event (a distinct event type from message.*), (2) the attacker is a Slack workspace user who can mention the bot in a channel where the Slack app is installed, and (3) the bot is configured with restrictive controls - allowed_users, allowed_channels, or unknown_user_policy="deny" - that the attacker would otherwise fail; without such controls there is nothing to bypass. The bug is in src/praisonai/praisonai/bots/slack.py: the app_mention handler never calls is_channel_allowed(), is_user_allowed(), or UnknownUserHandler.handle(), whereas the message handler does. Limiting factors that reduce realistic risk: the attacker must already hold Slack workspace membership and the ability to mention the bot, the app must be present in the target channel, app_mention must be subscribed, and the ultimate confidentiality/integrity impact is bounded by which agent and tools the operator has deployed and auto-approved. |
| Impact | CVSS base score is 8.3 (High) with vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L, reflecting a network-reachable, low-complexity authorization bypass (CWE-862/CWE-863) requiring only low privilege. The PR:L maps to a real prerequisite: the attacker must be a Slack workspace user able to mention the bot, so this is authenticated at the Slack-workspace level, not anonymous internet exploitation. No EPSS score and no CISA KEV entry are present in the input, so there is no quantitative exploitation-probability signal and no evidence of active exploitation; the only forward-looking signal is the vuln.today Decision label 'this_week', which indicates a prompt-but-not-emergency priority consistent with a patched flaw that is not yet known-exploited. A local-only proof-of-vulnerability is published in the GHSA advisory (it mocks Slack in-process and does not connect to Slack or require tokens), demonstrating the bypass against v4.6.58, so a public PoC reference exists but it is not a weaponized remote exploit. The C:H/I:H rating is conditional: the advisory states the downstream impact depends on the deployed agent and its tools, and is high only because PraisonAI's default bot config auto-approves 'safe' tools (web, memory, scheduling, file, planning, skill). Net assessment: a genuine, patchable priority for anyone running the PraisonAI Slack bot with app_mention subscribed and allowlist/pairing controls configured, but lower real-world urgency than the raw 8.3 suggests because there is no KEV/EPSS evidence of widespread exploitation and the worst-case impact is deployment-dependent. |
| Exploit ScenarioDerived | A Slack workspace member who is not in BotConfig.allowed_users mentions the PraisonAI bot in a channel where the app is present but which is not in allowed_channels. The app_mention event handler strips the mention and directly invokes the agent session without running the channel check, user allowlist check, or UnknownUserHandler policy that the normal message handler enforces, so the attacker's arbitrary prompt reaches the configured agent and its auto-approved tools. A local-only PoV in the GHSA advisory reproduces this against v4.6.58, showing the same payload dropped by the message handler but accepted via app_mention. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 23, 2026
Slack app_mention events in the PraisonAI bot (PyPI package praisonai, versions 3.11.0 through 4.6.58) skip the allowed_users, allowed_channels and unknown_user_policy checks that the normal message handler enforces, so any Slack workspace member who can mention the bot in a channel where the app is installed can drive the configured agent even when the identical event content is dropped by the message path. The root cause is missing authorization (CWE-862, also tracked as CWE-863) in src/praisonai/praisonai/bots/slack.py, and the assessed CVSS 3.1 vector is AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L (8.3, High) - network reachable, low complexity, and authenticated, since the attacker must already hold Slack workspace membership and be able to mention the bot. A public PoC reference exists in the form of a local-only harness that mocks Slack Bolt and the Slack SDK in-process and does not connect to Slack; it is not verified as working exploit code against a live deployment, and there is no confirmed active exploitation (no CISA KEV listing). Remediation is prioritized as this week rather than an emergency.
RemediationAI
Upgrade the praisonai package to 4.6.59 or later, the first release containing the vendor fix per advisory GHSA-qvpf-j64c-jmhr (https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-qvpf-j64c-jmhr); the fix direction is a single shared authorization preflight applied to every Slack ingress path, so app_mention events are converted through _convert_event_to_message(), tagged with _channel_type="slack", and run through is_channel_allowed(), is_user_allowed() and UnknownUserHandler.handle() before the bot mention is stripped and _session.chat() is invoked. Where an immediate upgrade is not possible, the directly effective compensating control is to unsubscribe the Slack app from the app_mention event (and remove the app_mention-related scope) so that only the guarded message handler remains active - with the trade-off that the bot will no longer respond when users @-mention it, and users must interact through the message path or DMs. A second option is to remove the PraisonAI Slack app from channels where untrusted workspace members can post, or restrict channel membership, which reduces exposure but requires ongoing channel hygiene and does not fix the handler gap for channels where the app must remain. Operators should also review which tools the bot auto-approves, since the reachable impact under bypass is bounded by the agent and tool set actually deployed, and should audit Slack logs for app_mention events originating from users or channels that are not present in the configured allowlists.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
PraisonAI is a multi-agent framework whose Slack integration is built on Slack Bolt, where message and app_mention are separate event types rather than app_mention being a sub-type of message.*. The guarded message handler in src/praisonai/praisonai/bots/slack.py converts the incoming event into a BotMessage, tags it with _channel_type = "slack", fires the message_received hook, then evaluates is_channel_allowed(), is_user_allowed() and UnknownUserHandler.handle() before it calls the session manager and the agent. The adjacent app_mention handler performs none of this: after discarding events carrying a bot_id, it strips the bot mention from the text and invokes the agent session directly (in older affected releases via self._agent.chat(text), in newer ones via self._session.chat(...)), passing through sender, channel, text, timestamp and thread metadata without any policy evaluation. The configuration component involved is src/praisonai-agents/praisonaiagents/bots/config.py, which supplies BotConfig.allowed_users, BotConfig.allowed_channels and unknown_user_policy. Because Slack delivers app_mention independently of message.*, a deployment subscribed to app mentions cannot rely on the message handler to apply the same sender and channel policy - this is a sibling-handler guard-coverage gap of the missing-authorization class. Version 3.10.24 is unaffected simply because it does not contain slack.py, which bounds the introduction of the component at 3.11.0. The advisory does not claim compromise of Slack itself, bypass of Slack request signature verification, or arbitrary code execution by default; the reachable impact is unauthorized prompt submission to whatever agent and tools the operator has deployed, and PraisonAI's default bot configuration auto-approves safe tools including web, memory, scheduling, file, planning and skill tools, so confidentiality and integrity exposure is real but operator-dependent.
Know when Praisonai gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L
Attacker must be a Slack workspace user able to mention the bot, so PR:L; network-reachable via Slack with no victim interaction gives AV:N/AC:L/UI:N; high C/I/A:L follow the default agent tools.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
PraisonAI is a multi-agent teams system. From version 3.11.0 to before version 4.6.59, PraisonAI's Slack bot applies its configured allowed_users, allowed_channels, and unknown-user pairing policy in the normal Slack message event handler, but not in the adjacent Slack app_mention event handler. A Slack workspace user who can mention the bot in a channel where the Slack app is present can trigger the configured PraisonAI agent even when: the sender is not in BotConfig.allowed_users; the channel is not in BotConfig.allowed_channels; unknown_user_policy="deny" is configured; and the same event content is correctly dropped by the normal message handler. This issue has been patched in version 4.6.59.
Technical POC Analysis
Missing authorization (CWE-862; the advisory also files it as CWE-863) in the Slack ingress layer of the praisonai package, file src/praisonai/praisonai/bots/slack.py.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A high-severity authorization bypass in the PraisonAI Slack bot (versions 3.11.0 through 4.6.58) allows any Slack workspace member to bypass configured user and channel restrictions via app_mention events. This enables unauthorized users to drive the bot's underlying AI agent, potentially exposing sensitive data or triggering unintended actions within the workspace. Leadership should prioritize remediation because the flaw undermines access controls and could lead to data leakage or operational disruption.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Remote code execution in PraisonAI before 1.6.78 allows attackers to run arbitrary Python on the host by manipulating th
PraisonAI's TypeScript MCP server (npm package `praisonai`, versions 1.5.0 through 1.7.1) exposes an HTTP JSON-RPC trans
WebSocket origin-validation bypass in PraisonAI's Browser Server (praisonai/browser/server.py) before 4.6.58 lets an att
PraisonAI's `praisonai serve` subsystem (agents and unified modes) accepts an `--api-key` CLI flag that is parsed but ne
System prompt extraction and unauthorized tool invocation in PraisonAI before 4.6.78 arise because the prompt-injection
Unauthenticated remote agent invocation in PraisonAI versions 4.6.34 through 4.6.57 allows any network-reachable caller
SSRF protection bypass in PraisonAI's praisonaiagents library (all versions before 1.6.58) lets low-privileged users rou
Server-side request forgery in PraisonAI's Crawl4AI/Chromium crawling backend (all versions before 1.6.78) lets low-priv
Authentication fail-open in PraisonAI's Recipe HTTP server allows unauthenticated remote attackers to invoke recipe exec
Authentication bypass in PraisonAI's AgentServer component exposes all routes - /publish, /events, /info, /health - to u
Arbitrary Python code execution in PraisonAI's workflow include feature allows an attacker who controls a local recipe d
Server-side request forgery in PraisonAI's web_crawl() function (versions 1.5.128-1.6.57) allows an attacker who can inf
EUVD-2026-108876
GHSA-qvpf-j64c-jmhr
NVD
CVE.org
EPSS
Exploit-DB