PHP2Shell: Read our blog on the critical RCE vulnerabilities affecting 70% of the Internet

CVE-2026-62179: 
Python vulnerability analysis and mitigation

Overview

CVE-2026-62179 is an authorization bypass vulnerability in the praisonai-platform component of PraisonAI, a multi-agent teams system. It allows an authenticated workspace member to delete issue dependency edges owned by workspace owners/admins by exploiting incorrect permission checks tied to the caller-selected URL issue endpoint. Affected versions are praisonai-platform <= 0.1.8 (pip); version 0.1.9 contains the fix. The vulnerability was first published on June 25, 2026, and added to the GitHub Advisory Database on October 7, 2026. It carries a CVSS v3.1 base score of 6.5 (Medium) (GitHub Advisory, PraisonAI Advisory).

Technical details

The root cause is a combination of Missing Authorization (CWE-862) and Incorrect Authorization (CWE-863). The vulnerable endpoint DELETE /workspaces/{workspace_id}/issues/{issue_id}/dependencies/{dep_id} in src/praisonai-platform/praisonai_platform/api/routes/dependencies.py loads a dependency record and accepts it if either dep.issue_id == issue_id or dep.depends_on_issue_id == issue_id — meaning either side of the dependency edge can be used as the URL issue. The require_delete_permission helper in deps.py then checks authorization only against the caller-selected URL issue's creator, not the primary issue of the dependency. A workspace member who owns one of the related issues can therefore select their own issue as the URL parameter, pass the ownership check (resource_owner_id == user.id), and successfully delete a dependency edge that was created and controlled by an owner/admin. Additionally, the POST endpoint for creating dependencies only requires require_workspace_member, allowing members to add dependency edges to owner-created issues without owner/admin authority (GitHub Advisory, PraisonAI Advisory).

Impact

An ordinary workspace member can remove blocks, blocked_by, or related workflow dependency edges from owner-created issues whenever the dependency also references a member-owned issue, undermining planning and execution order enforced by owners/admins. The same route family also permits members to create false dependency edges on owner-created issues, enabling both unauthorized addition and removal of workflow relationships. There is no confidentiality or availability impact; the consequence is limited to workflow integrity loss within the affected workspace (GitHub Advisory).

Exploitability

No in-the-wild exploitation has been reported, and no exploit kits or threat actor attribution are associated with this vulnerability. A proof-of-concept (PoV) script (pov_platform_dependency_delete_bypass.py) is publicly documented in the GitHub Security Advisory, demonstrating the bypass against both the current git HEAD and PyPI package version 0.1.8. Exploitation requires valid workspace member credentials, making it non-automatable against arbitrary targets. The EPSS score is approximately 0.175% (6th percentile), and the vulnerability is not listed in the CISA KEV catalog (GitHub Advisory).

Exploitation steps

  1. Obtain workspace membership: The attacker must already be an authenticated workspace member (e.g., legitimately invited or through a compromised account).
  2. Identify a target dependency: Enumerate owner-created issues and their dependencies using GET /api/v1/workspaces/{workspace_id}/issues/{owner_issue_id}/dependencies/ to find a dependency edge (dep_id) that references a member-owned issue.
  3. Confirm direct delete is blocked: Attempt DELETE /api/v1/workspaces/{workspace_id}/issues/{owner_issue_id}/dependencies/{dep_id} with member credentials — this returns HTTP 403.
  4. Select the member-owned issue as the URL issue: Send DELETE /api/v1/workspaces/{workspace_id}/issues/{member_issue_id}/dependencies/{dep_id} with member credentials. The route accepts the dependency because dep.depends_on_issue_id == member_issue_id, and the permission check passes because the member owns the URL issue.
  5. Verify deletion: Confirm the dependency is removed by querying GET /api/v1/workspaces/{workspace_id}/issues/{owner_issue_id}/dependencies/ — the response will show zero dependencies, confirming the owner-side edge was deleted.
  6. (Optional) Create false dependencies: Use POST /api/v1/workspaces/{workspace_id}/issues/{owner_issue_id}/dependencies/ with member credentials to inject unauthorized dependency edges on owner-created issues (GitHub Advisory, PraisonAI Advisory).

Indicators of compromise

  • Logs: HTTP DELETE requests to /api/v1/workspaces/{workspace_id}/issues/{member_issue_id}/dependencies/{dep_id} returning HTTP 204 from a workspace member account, especially when the same dep_id previously returned 403 via the owner issue endpoint.
  • Logs: HTTP POST requests to /api/v1/workspaces/{workspace_id}/issues/{owner_issue_id}/dependencies/ from member-role accounts creating dependency edges on issues they do not own.
  • Application behavior: Unexpected disappearance of dependency edges (e.g., blocks, blocked_by, related) from owner-created issues as observed in dependency list responses.
  • Audit trail: Dependency deletion events attributed to workspace members on issues owned by admins/owners, particularly where the deleting user is not the issue creator.

Mitigation and workarounds

Upgrade praisonai-platform to version 0.1.9 or later, which patches the authorization bypass. The recommended fix is to define authorization for dependency edges based on the primary dep.issue_id issue regardless of which related issue endpoint was used in the URL, and to require owner/admin authority (or primary-issue ownership) before creating or deleting dependency edges on owner-created issues. No configuration-based workaround is available for versions <= 0.1.8; upgrading is the only remediation (GitHub Advisory).

Additional resources


Source: This report was generated using AI

Related Python vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-c978-59m8-c77vHIGH7.8
  • Python logoPython
  • virtualenv
NoYesOct 21, 2026
GHSA-cw65-gx24-rc82MEDIUM4.5
  • Python logoPython
  • virtualenv
NoYesOct 21, 2026
CVE-2026-113716MEDIUM4.5
  • Python logoPython
  • virtualenv
NoYesOct 21, 2026
GHSA-43mp-35q3-x3fqMEDIUM4.5
  • Python logoPython
  • virtualenv
NoYesOct 21, 2026
CVE-2026-113724MEDIUM4.5
  • Python logoPython
  • virtualenv
NoYesOct 21, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management