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

GHSA-63v4-w882-g4x2: PraisonAI: HTTPApproval dashboard renders tool arguments as raw HTML, allowing approval-page XSS to approve dangerous tools

highCVSS 8.8CVE-2026-56840
HTTPApproval dashboard renders tool arguments as raw HTML, allowing approval-page XSS to approve dangerous tools Summary praisonai.bots.HTTPApproval renders pending tool approval arguments directly into the approval dashboard HTML. An attacker-controlled tool argument can inject JavaScript into that page. When a human opens the approval URL to inspect the risky tool request, the script runs in the dashboard origin and can POST to the same request's /approve/{request_id}/decide endpoint, causing HTTPApproval to return approved=True. The local PoV uses a harmless touch /tmp/prai010 # command prefix and stops at the approval decision. It does not execute the command. Affected Versions Proposed affected range: >= 4.5.2, <= 4.6.57. Validated affected: - current head 2f9677abb2ea68eab864ee8b6a828fd0141612e1 (v4.6.57-4-g2f9677ab) - v4.5.2 - v4.5.3 - v4.5.124 - v4.5.126 - v4.5.128 - v4.6.10 - v4.6.56 - v4.6.57 v4.5.0 and v4.5.1 do not contain the HTTPApproval backend. Impact An attacker who can influence an agent task or prompt enough to produce a dangerous tool call can embed a short XSS payload in the tool argument. When the human approver opens the HTTP approval page, the script can approve the pending dangerous tool call before the human explicitly clicks Approve or Deny. This bypasses the human-in-the-loop approval boundary for dangerous tools such as execute_command, execute_code, delete_file, or other tools gated through HTTPApproval. If the agent continues after approval, the dangerous tool runs with the privileges of the PraisonAI process. Why This Is Not Intended Behavior PraisonAI documentation describes approval as a safety control that pauses an agent before risky tools and asks a human or configured channel to allow or deny execution. The documentation also lists http as a supported non-console approval backend. Opening the approval page to inspect a risky command should not itself approve the command. The current behavior allows attacker-control

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-63v4-w882-g4x2

Referenced CVEs

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

More from GitHub Security Advisories