<?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>Cross-Tenant — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/cross-tenant/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata — refreshed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Fri, 17 Apr 2026 12:00:00 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/cross-tenant/feed.xml" rel="self" type="application/rss+xml"/><item><title>Paperclip Cross-Tenant Agent API Token Minting Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2026-04-paperclip-agent-token-minting/</link><pubDate>Fri, 17 Apr 2026 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-04-paperclip-agent-token-minting/</guid><description>A vulnerability in Paperclip allows any authenticated user to mint agent API tokens for other tenants, leading to unauthorized access and control due to missing company access checks.</description><content:encoded><![CDATA[<p>A critical vulnerability exists in Paperclip, specifically affecting instances running in authenticated mode with open sign-ups enabled. This flaw allows any authenticated user, even without any company memberships, to mint API tokens for agents belonging to other companies. This is due to the absence of <code>assertCompanyAccess</code> checks on the <code>/api/agents/:id/keys</code> endpoint and other agent lifecycle management endpoints. An attacker can exploit this to gain unauthorized access to sensitive information within the victim tenant, including company metadata, issues, approvals, agent configurations, and adapter settings. The vulnerability was verified on Paperclip version 2026.411.0-canary.8 (commit b649bd4), which is post the 2026.410.0 patch that addressed a related issue. This vulnerability poses a significant risk to multi-tenant Paperclip deployments.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker signs up for a Paperclip account using the default <code>/api/auth/sign-up/email</code> endpoint.</li>
<li>Attacker verifies their account and confirms they have no company memberships via <code>GET /api/companies</code>.</li>
<li>Attacker identifies the ID of a target agent belonging to a different company, potentially through activity feeds or other exposed APIs.</li>
<li>Attacker sends a <code>POST</code> request to <code>/api/agents/:id/keys</code> with a desired name for the API key, targeting the victim agent&rsquo;s ID.</li>
<li>The server responds with a <code>201</code> status code, returning a plaintext <code>pcp_*</code> token. No company access check is performed at this stage.</li>
<li>Attacker uses the stolen token as a <code>Bearer</code> credential in subsequent API requests.</li>
<li>The <code>actorMiddleware</code> resolves the token to an actor with the victim&rsquo;s company ID, bypassing authorization checks.</li>
<li>Attacker can now access sensitive information such as company metadata, issues, approvals, and agent configurations via API endpoints like <code>/api/companies/:victimId</code>, <code>/api/companies/:victimId/issues</code>, and <code>/api/agents/:victimAgentId</code>. They can also pause, terminate, or delete the agent using other vulnerable endpoints.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>This vulnerability allows for a complete bypass of tenancy boundaries in Paperclip. The impact includes:</p>
<ul>
<li><strong>Confidentiality:</strong> Unauthorized access to sensitive company data, including metadata, issues, approvals, agent configurations, and adapter settings.</li>
<li><strong>Integrity:</strong> Ability to manipulate agent configurations and trigger actions within the victim tenant, potentially leading to data breaches or malicious activities.</li>
<li><strong>Availability:</strong> Ability to pause, terminate, or delete agents belonging to other companies, disrupting their operations.</li>
</ul>
<p>The severity is high due to the ease of exploitation, default configurations, and the persistence of the stolen tokens. The vulnerability affects all Paperclip instances running in <code>authenticated</code> mode with open sign-up enabled.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Apply the suggested fix provided in the advisory to <code>server/src/routes/agents.ts</code> by implementing company access checks (<code>assertCompanyAccess</code>) for the <code>/api/agents/:id/keys</code> endpoint.</li>
<li>Audit and apply similar fixes to the sibling lifecycle handlers at <code>/agents/:id/pause</code>, <code>/resume</code>, <code>/terminate</code>, and <code>DELETE /agents/:id</code> as these share the same vulnerability.</li>
<li>Conduct a code-wide sweep for <code>assertBoard(req)</code> calls not immediately followed by <code>assertCompanyAccess</code> or <code>assertInstanceAdmin</code> to identify and address other potential cross-tenant access issues.</li>
<li>Deploy the Sigma rules provided below to your SIEM and tune for your environment to detect unauthorized token minting and API access.</li>
<li>Monitor Paperclip server logs for unusual API requests to <code>/api/agents/:id/keys</code> from users without company memberships.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>paperclip</category><category>broken-access-control</category><category>cross-tenant</category></item><item><title>Paperclip Cross-Tenant Agent API Key IDOR Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2026-04-paperclip-idor/</link><pubDate>Thu, 16 Apr 2026 22:49:46 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-04-paperclip-idor/</guid><description>A Paperclip API vulnerability allows a board user from one company to create, list, and revoke agent API keys in another company, leading to full cross-tenant compromise due to insufficient authorization checks on `/agents/:id/keys` routes.</description><content:encoded><![CDATA[<p>A critical vulnerability exists in the Paperclip control-plane API, specifically in versions prior to 2026.416.0. The vulnerability allows a board user with membership in one company (e.g., Company A) to manipulate agent API keys for agents belonging to a different company (e.g., Company B). This is due to an Insecure Direct Object Reference (IDOR) in the <code>/agents/:id/keys</code> routes (GET, POST, DELETE) where the API only validates the user&rsquo;s board-type session but fails to verify access to the company owning the target agent. By exploiting this flaw, an attacker can mint a new agent API key for an agent in the victim tenant, granting them full agent-level access within that tenant. This cross-tenant compromise allows the attacker to execute workflows, read data, and call any endpoint authorized for agents in the victim tenant, effectively breaching tenant isolation. The vulnerability was introduced due to missing company access checks in the key-management routes.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker authenticates as a board user within Company A.</li>
<li>The attacker discovers or obtains the UUID of an agent belonging to Company B.</li>
<li>The attacker sends a POST request to <code>/agents/&lt;VICTIM_COMPANY_B_AGENT_ID&gt;/keys</code> with a name to create a new API key.</li>
<li>The server, lacking proper authorization checks, creates a new API key associated with the victim agent&rsquo;s <code>companyId</code> and returns the cleartext token.</li>
<li>The attacker uses the newly minted agent token in the <code>Authorization</code> header to authenticate subsequent requests.</li>
<li>The server&rsquo;s authentication middleware incorrectly sets the <code>req.actor</code> to an agent type associated with the victim&rsquo;s company.</li>
<li>The attacker successfully accesses resources and executes actions within Company B&rsquo;s tenant, bypassing company access checks.</li>
<li>The attacker can enumerate and revoke existing keys using the <code>/agents/:id/keys</code> and <code>/agents/:id/keys/:keyId</code> endpoints, causing denial of service to legitimate users.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>This vulnerability leads to a full cross-tenant compromise. An attacker can gain unauthorized access to any tenant within the Paperclip instance, provided they have a minimal valid account (board user in any company) and a victim agent UUID. This allows the attacker to execute workflows, read sensitive data, and call any authorized endpoint within the victim tenant, leading to complete confidentiality, integrity, and availability loss. Furthermore, the attacker can revoke legitimate agent keys, resulting in a denial of service. This represents a scope change, where a vulnerability in Company A&rsquo;s scoping checks results in catastrophic impact within Company B&rsquo;s tenant.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Implement explicit company-access checks on the <code>/agents/:id/keys</code> (GET, POST) and <code>/agents/:id/keys/:keyId</code> (DELETE) routes before interacting with the service layer. This directly addresses the core issue as described in the advisory&rsquo;s &ldquo;Recommended Fix&rdquo; section.</li>
<li>Deploy the Sigma rule <code>Detect Paperclip Cross-Tenant API Key Creation</code> to identify unauthorized API key creation attempts.</li>
<li>Deploy the Sigma rule <code>Detect Paperclip Cross-Tenant API Access</code> to detect unauthorized access using stolen agent tokens.</li>
<li>Upgrade to npm/@paperclipai/server version 2026.416.0 or later to patch the vulnerability as mentioned in the advisory&rsquo;s &ldquo;Affected Packages&rdquo; section.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>idor</category><category>cross-tenant</category><category>api</category><category>paperclip</category><category>privilege-escalation</category></item></channel></rss>