<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Praisonai-Platform — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/praisonai-platform/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Fri, 29 May 2026 22:51:38 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/praisonai-platform/feed.xml" rel="self" type="application/rss+xml"/><item><title>praisonai-platform: Cross-Workspace Label IDOR Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2026-05-praisonai-idor/</link><pubDate>Fri, 29 May 2026 22:51:38 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-praisonai-idor/</guid><description>Praison AI's praisonai-platform is vulnerable to an insecure direct object reference (IDOR) in the label endpoints (CVE-2026-47414), allowing cross-workspace label modification and information disclosure due to improper validation of label and issue IDs.</description><content:encoded><![CDATA[<p>The praisonai-platform is vulnerable to an Insecure Direct Object Reference (IDOR) vulnerability affecting label management endpoints. The vulnerability resides in <code>src/praisonai-platform/praisonai_platform/services/label_service.py</code> (lines 35-100) and <code>src/praisonai-platform/praisonai_platform/api/routes/labels.py</code> (lines 42-106), and is tracked as CVE-2026-47414. Specifically, the application fails to validate if the <code>label_id</code> and <code>issue_id</code> provided in API requests belong to the workspace associated with the request. Instead, it relies solely on <code>require_workspace_member(workspace_id)</code> for access control, without extending this validation to the data layer. This allows an attacker with valid credentials for one workspace to manipulate labels and issue associations in other workspaces. The affected package is <code>pip/praisonai-platform</code> with versions 0.1.2 and earlier.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker registers a workspace <code>W_attacker</code> and obtains a valid authentication token for this workspace.</li>
<li>The attacker identifies <code>label_id</code> (<code>L_T</code>) and <code>issue_id</code> (<code>I_T</code>) from a target workspace <code>W_target</code>. These IDs can be harvested from responses (e.g., <code>list_labels</code> for attacker&rsquo;s workspace, or from issue records, activity feeds, exported dumps or error messages of the target workspace).</li>
<li>The attacker crafts a <code>PATCH</code> request to <code>/workspaces/W_attacker/labels/L_T</code> with a malicious payload to rename or recolor the label. This bypasses access control because the application only checks the attacker&rsquo;s workspace membership, not whether the label belongs to that workspace.</li>
<li>The <code>LabelService.update(L_T, ...)</code> function is called, modifying the foreign label in the database without proper authorization, resulting in the label&rsquo;s name and color being changed across the target workspace.</li>
<li>The attacker can send a <code>DELETE</code> request to <code>/workspaces/W_attacker/labels/L_T</code>. The <code>LabelService.delete(L_T)</code> function is called, deleting the label from the database and potentially disrupting associations within the target workspace.</li>
<li>The attacker crafts a <code>POST</code> request to <code>/workspaces/W_attacker/issues/I_T/labels/L_T2</code> to attach a foreign label <code>L_T2</code> to a foreign issue <code>I_T</code>.</li>
<li>The <code>LabelService.add_to_issue(I_T, L_T2)</code> function is executed, writing the association row without validating that either the issue or label ID belong to the attacker&rsquo;s workspace.</li>
<li>The attacker now has the ability to rewrite and delete labels from other workspaces, attach arbitrary labels to issues in other workspaces, detach valid labels from issues in other workspaces, and read the current label set on any issue.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this IDOR vulnerability allows an attacker to rename and delete labels across workspaces, attach and detach labels on issues in unauthorized workspaces, and list label assignments for any issue. This can lead to data corruption, disruption of triage workflows due to incorrect labeling, and unauthorized information disclosure. The vulnerability has a CVSS score of 6.3 (sec-moderate) with high integrity damage, low confidentiality impact, and low availability impact. If combined with the IssueService IDOR, an attacker can tamper with both the issue and its labels, making detection even more difficult.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Apply the suggested fix provided in the advisory to <code>src/praisonai-platform/praisonai_platform/services/label_service.py</code> and <code>src/praisonai-platform/praisonai_platform/api/routes/labels.py</code> to ensure workspace validation for label and issue IDs.</li>
<li>Deploy the Sigma rule &ldquo;Detect Cross-Workspace Label Modification via IDOR&rdquo; to identify malicious <code>PATCH</code> requests attempting to modify labels using a workspace ID mismatch.</li>
<li>Deploy the Sigma rule &ldquo;Detect Cross-Workspace Label Deletion via IDOR&rdquo; to identify malicious <code>DELETE</code> requests attempting to delete labels using a workspace ID mismatch.</li>
<li>Upgrade <code>pip/praisonai-platform</code> to a version greater than 0.1.2 to mitigate CVE-2026-47414.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>idor</category><category>vulnerability</category><category>privilege-escalation</category><category>collection</category><category>impact</category><category>cloud</category></item><item><title>PraisonAI Platform Workspace Cross-Access Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2026-05-praisonai-workspace-bypass/</link><pubDate>Fri, 29 May 2026 22:39:55 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-praisonai-workspace-bypass/</guid><description>PraisonAI Platform's workspace-scoped REST routes have an object-level authorization flaw allowing authenticated users from one workspace to access, modify, and delete objects in another workspace by providing the victim object's global UUID.</description><content:encoded><![CDATA[<p>PraisonAI Platform is vulnerable to an object-level authorization flaw in its workspace-scoped REST routes. This vulnerability, disclosed on May 29, 2026, allows an authenticated user belonging to one workspace (e.g., <code>workspace_attacker</code>) to bypass intended access controls and interact with objects (agents, projects, issues, comments) belonging to another workspace (e.g., <code>workspace_victim</code>). The vulnerability stems from the service layer resolving target objects by global UUID without validating workspace membership after initial authorization, leading to a breach of workspace isolation. Successful exploitation enables unauthorized data access, modification, and deletion, impacting data confidentiality, integrity, and availability across different workspaces in the PraisonAI Platform.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker creates an account on the PraisonAI Platform.</li>
<li>Attacker logs into the PraisonAI Platform and creates a workspace named <code>workspace_attacker</code>.</li>
<li>Victim creates an account on the PraisonAI Platform.</li>
<li>Victim logs into the PraisonAI Platform and creates a workspace named <code>workspace_victim</code>.</li>
<li>Victim creates an agent (or project, issue, or comment) within <code>workspace_victim</code>, obtaining the global UUID of the object (<code>victim_agent_id</code>).</li>
<li>Attacker crafts a request to a workspace-scoped route (e.g., <code>/api/v1/workspaces/{workspace_attacker}/agents/{victim_agent_id}</code>) supplying their workspace ID and the victim&rsquo;s object UUID.</li>
<li>The server authenticates the attacker based on their membership in <code>workspace_attacker</code>, but retrieves the victim&rsquo;s object from <code>workspace_victim</code> using the provided UUID without validating its workspace association.</li>
<li>Attacker reads, modifies, or deletes the victim&rsquo;s object, successfully breaching workspace isolation.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability allows an attacker with access to any workspace to access, modify, and delete data belonging to other workspaces within the PraisonAI Platform. This could lead to unauthorized data breaches, data corruption, and denial of service for legitimate users. The number of affected users and organizations depends on the deployment size of the PraisonAI Platform.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Deploy the Sigma rule <code>Detect PraisonAI Platform Cross-Workspace Agent Access</code> to identify attempts to access agents in different workspaces based on workspace ID and agent ID.</li>
<li>Deploy the Sigma rule <code>Detect PraisonAI Platform Cross-Workspace Project Access</code> to identify attempts to access projects in different workspaces based on workspace ID and project ID.</li>
<li>Examine webserver logs for unusual patterns in requests to the agent, project, issue, and comment API routes to detect potential exploitation attempts (logsource: webserver).</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">threat</category><category>authorization</category><category>privilege-escalation</category><category>workspace-bypass</category></item></channel></rss>