<?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>Paperclip — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/paperclip/</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/paperclip/feed.xml" rel="self" type="application/rss+xml"/><item><title>Paperclip Unauthenticated API Access Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2026-04-paperclip-auth-bypass/</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-auth-bypass/</guid><description>Paperclip application suffers from multiple unauthenticated API access vulnerabilities allowing attackers to access sensitive data, gather reconnaissance, and potentially bypass authentication.</description><content:encoded><![CDATA[<p>Paperclip, a software application, contains multiple API endpoints that lack proper authentication checks, even when the application is configured in &ldquo;authenticated&rdquo; mode. This vulnerability allows unauthenticated access to sensitive information and functionality. Observed in versions prior to 2026.416.0, the issue impacts the confidentiality and integrity of the application. An attacker can exploit these vulnerabilities to gather reconnaissance information about the deployment, access heartbeat run issues, retrieve agent instructions, and potentially bypass authentication mechanisms via unauthenticated CLI challenge creation. The disclosed information includes API structure, authentication mechanisms, and internal workflows, which can be leveraged for further malicious activities.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker sends an unauthenticated GET request to <code>/api/health</code> to obtain deployment mode, exposure setting, auth status, version, and feature flags.</li>
<li>The attacker sends an unauthenticated GET request to <code>/api/skills/index</code> to retrieve a list of available skill endpoints.</li>
<li>The attacker sends an unauthenticated GET request to <code>/api/skills/paperclip</code> to leak the agent heartbeat procedure, API endpoints, parameters, authentication mechanisms, and agent coordination protocols.</li>
<li>The attacker sends an unauthenticated GET request to <code>/api/heartbeat-runs/:runId/issues</code>, attempting to access issue data for a heartbeat run by guessing or obtaining a valid <code>runId</code>.</li>
<li>The attacker sends an unauthenticated POST request to <code>/api/cli-auth/challenges</code> with a JSON payload containing a command to create a CLI authentication challenge and obtain a <code>boardApiToken</code>.</li>
<li>The attacker uses the leaked information to map the internal API structure and plan further attacks or unauthorized access.</li>
<li>The attacker exploits the <code>boardApiToken</code> obtained in step 5, combined with open registration (if enabled), to persistently generate API keys.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>This vulnerability results in significant data exposure, including heartbeat run issues, agent instructions, and internal API structure. An attacker can fingerprint the deployment and map the entire internal API for reconnaissance purposes. Successful exploitation of the unauthenticated CLI challenge creation allows for authentication bypass, potentially leading to a full remote code execution chain. The vulnerability affects organizations using Paperclip versions prior to 2026.416.0. A successful attack can compromise sensitive data, facilitate unauthorized access, and lead to further malicious activities.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Apply the patch to upgrade Paperclip to version 2026.416.0 or later, which addresses the unauthenticated API access vulnerabilities.</li>
<li>Implement authentication checks for the <code>/api/heartbeat-runs/:runId/issues</code> endpoint in <code>server/src/routes/activity.ts</code> using <code>assertCompanyAccess</code>.</li>
<li>Implement authentication checks for the <code>/api/cli-auth/challenges</code> endpoint in <code>server/src/routes/access.ts</code> using <code>assertBoard</code>.</li>
<li>Implement authentication checks for the <code>/api/skills/index</code> and <code>/api/skills/:skillName</code> endpoints in <code>server/src/routes/access.ts</code>.</li>
<li>Reduce the information exposed by the <code>/api/health</code> endpoint by removing sensitive data such as <code>deploymentMode</code>, <code>deploymentExposure</code>, and <code>version</code> or by requiring authentication via <code>assertBoard</code>.</li>
<li>Deploy the Sigma rule &ldquo;Detect Paperclip Unauthenticated Health Endpoint Access&rdquo; to identify unauthorized access attempts to the <code>/api/health</code> endpoint.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>paperclip</category><category>authentication-bypass</category><category>api-vulnerability</category></item><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>